InboxUnpack

Convert EML to PDF

An .eml file is a single email message saved to disk, exactly as it travelled: headers, body and attachments in one plain-text envelope. It is the format Thunderbird, Apple Mail and most webmail exports produce, and almost nothing outside a mail client will open one. When you need to attach a message to a legal filing, a support ticket, an insurance claim or an expenses form, what is actually wanted is a PDF.

This page produces a real PDF. The message is parsed as MIME — nested multiparts, quoted-printable and base64 bodies, RFC 2047 encoded headers and all — and the text is laid out on paginated pages with the header fields you choose, the reply chain preserved as indentation, and an appendix listing every attachment with its size, type and SHA-256 hash. The file is a genuine PDF document: it is not a renamed anything, and the test suite re-opens every one it produces and reads the pages back.

The file is read by code running in this tab. It is not uploaded, not queued on a server and not seen by anyone but you — which also means there is no size limit imposed from outside, only what your own device can hold.

  1. 1.Drop one or more .eml files, or a whole folder of them. The format is confirmed from the file's own bytes, not its name.
  2. 2.Choose which header fields to print, the page size, and whether to include the attachment index and hashes.
  3. 3.Convert. Each PDF is offered individually, or the whole batch as a ZIP with a manifest recording what came from where.

Drop email files here

Built for .eml, .mbox. Nothing is uploaded — the file is read by code running in this tab.

What this page cannot do

  • The PDF contains the message's text, not a picture of its HTML. Layout, tables, colours and images from an HTML body are not reproduced — the text inside them is. This is a deliberate trade: rendering arbitrary message HTML with full fidelity means running a layout engine over markup the sender controls, which is exactly the thing this site refuses to do. If you need a visual facsimile, open the message in the viewer and use your browser's own Print to PDF.
  • The embedded font covers Latin, Greek, Cyrillic and Vietnamese. Chinese, Japanese, Korean, Arabic, Hebrew, Thai and Indic text will appear as ▯ markers, and the converter tells you how many characters were affected rather than letting you find out later. A font covering those scripts is 16 MB or more, which is not a reasonable thing to send to every visitor.
  • Inline images are listed in the attachment appendix but not drawn into the page.
  • An .eml whose bytes are not a mail message is refused with the reason, rather than converted into an empty PDF.

If it did not work

The PDF is mostly empty but the message clearly had content.
Why: The message's only body is HTML built entirely from images, or its body is an attachment rather than a body part.
Try: Open the same file in the EML viewer. The attachment list will show what is actually in it, and the source view shows the MIME structure.
Characters appear as ▯ in the PDF.
Why: Those characters are outside the embedded font's coverage.
Try: Use the viewer and print from the browser instead — your system fonts will cover far more scripts than a 600 KB embedded subset can.
The file is rejected as not being an .eml.
Why: Some clients export a .eml that is really an mbox with one message, or a Compound File with a .eml extension.
Try: Drop it anyway — the detector reads the bytes and will tell you what it actually is, then parse it as that.

Questions

Is my email actually uploaded anywhere?

No. There is no server here that accepts a file. The page's Content-Security-Policy sets connect-src to 'self', so the browser itself refuses any request to another origin, and form-action is 'none' so nothing can be submitted anywhere. The only network requests this site makes are for its own JavaScript, its own font files, and the Vercel page-view counter — which records that a page was viewed and nothing about what you opened. You can confirm all of it in your browser's network panel with the page open.

Is the output a real PDF?

Yes. It is written with pdf-lib, carries the %PDF header and a valid cross-reference table, and every test in the suite re-parses the produced file and checks the page count before the test is allowed to pass. Nothing here renames one format to another.

Can I convert a whole folder of .eml files at once?

Yes. Choose a folder instead of files and every .eml inside it is queued. The queue runs several at a time on a desktop and one at a time on Safari and on phones, shows progress per file, and isolates failures so one unreadable message does not stop the batch. You can pause, stop, retry the failures, and download everything as a single ZIP.

Are attachments included in the PDF?

They are indexed, not embedded. The appendix lists every attachment with its filename, MIME type, byte size and SHA-256 hash, which is what makes a converted message usable as evidence. To get the files themselves, use the attachment extractor, which writes them into a ZIP alongside a manifest.

What happens to a message with a very large attachment?

Nothing is decoded that does not need to be. The PDF path reads the body and the attachment metadata; a 24 MB attachment is measured and hashed but never turned into a base64 string in memory a second time. The 100-file and large-attachment measurements are recorded in the project README.

Related

  • Open EML filesOpen .eml email files in your browser with remote content blocked, full header analysis, attachment extraction and SHA-256 hashes. Nothing is uploaded.
  • Extract email attachmentsPull every attachment out of .eml, .msg and .mbox files, with SHA-256 hashes and a manifest, as a ZIP. Runs entirely in your browser; nothing is uploaded.
  • Convert MSG to PDFConvert Outlook .msg files to PDF with headers, body text and an attachment index with SHA-256 hashes. Runs entirely in your browser; nothing is uploaded.