About EML Tool
Casey Marlin
Casey Marlin maintains EML Tool as a one-person project. A saved message should be readable without installing Outlook, and private correspondence should not have to be uploaded just to open it. He maintains the viewer and the written guides. He is not a forensic examiner, this site is not a certified archive, and nothing here promises that a court will accept a file.
What the tools do
The viewer parses an EML message in the browser. Related pages open MSG, EMLX, MBOX, and winmail.dat the same way. Parsing a message on a page that has already loaded does not send that message to a conversion server.
The free EML-to-PDFtool uses your browser's print dialog for individual messages. EML Tool Pro provides a separate batch workflow that converts multiple supported email files into PDFs and packages them in a ZIP. Both workflows process email content on your device.
That Pro workflow accepts multiple .eml, .emlx, and .msg files. The trial on the Pro page allows 3 messages per batch. The same page lists a 24-hour batch pass at $9.99 and a lifetime option at $39.99. Those are the prices published there now. This page does not say that every feature on the site is free forever. Read the current offer on Pro.
What the scripts check
scripts/test-emlParser.mjs feeds the parser synthetic text built inside the script. The cases cover a plain EML, a multipart message with a base64 attachment, a quoted-printable body with an encoded subject, an EMLX wrapper, an mbox split, and URL checks that classify a remote image and reject an unsafe link. Those strings are generated fixtures. They are not a customer's mailbox.
scripts/test-msgToEml.mjs starts from an already parsed MSG object, builds a MIME EML, and parses that EML back through parseEml. The round trip is not an end-to-end import of every binary MSG file a desktop client might write.
scripts/test-tnef.mjs calls buildTnefFixture in lib/tnefParser.js to construct its sample. The checks cover attachment bytes and a long filename winning over the short 8.3 name. The script does not read a folder of external .dat files.
A recorded run on 16 October 2026 reported 47 passing checks in test-emlParser.mjs, 33 in test-msgToEml.mjs, and 18 in test-tnef.mjs, with no failures in that run. The result covers the fixtures above. It does not mean current Chrome, Gmail, Outlook on the web, Mac, or iPhone builds were re-run for this page. Other pages still show a shared stamp of August 9, 2026. This revision does not move that stamp, and the stamp is not a new site-wide check. This About page's own text was revised on 17 October 2026.
Network boundary
Parsing is local. Buying Pro, and activating or checking a license, needs a network connection. Remote resources inside a message are blocked by default. If you choose to load images, the browser contacts the server named by those images. Analytics are described on the privacy policy. Being able to parse after the page itself has loaded, with the network then turned off, does not mean purchase or activation works offline.
Independence and contact
EML Tool is an independent project. It is not affiliated with, endorsed by, or sponsored by Microsoft, Google, or Apple. Outlook, Gmail, Apple Mail, and related names are trademarks of their owners, used here only to describe file types and tasks. Writing on this site is original.
Questions and corrections go through the contact page. There is no live chat and no promised reply window.