Boneyard Tools

EML Email Parser

Drop in an .eml file (the raw RFC 822 format that mail clients export) to read it without an email program. It shows the From, To, Cc, Subject, and Date headers, the Message-ID and Content-Type, lists any attachments by filename, and previews the start of the message body. The file is read entirely in your browser and never uploaded.

How to read an EML file

  1. Drag an .eml file onto the box, or click to browse for one.
  2. Read the header card for the sender, recipients, subject, and date.
  3. Scan the attachments list and body preview to see the message contents.

Examples

A saved message with an attachment

invoice.eml exported from a desktop mail client
From, To, Subject and Date shown, 1 attachment (invoice.pdf), body preview

Frequently asked questions

Is my email uploaded anywhere?

No. The .eml file is read and parsed entirely in your browser using JavaScript. Nothing is uploaded, so even confidential messages stay on your device.

What is an EML file?

An .eml file is a single email saved in the RFC 822 (MIME) format: a block of headers like From, To, Subject, and Date, a blank line, then the message body. Most desktop mail clients can export messages this way.

How does it find attachments?

For multipart messages it splits the body on the MIME boundary and looks for parts marked Content-Disposition: attachment, reading the filename from that header. It lists the names and content types; it does not decode or download the attachment data.

Does it handle encoded subjects with accents or emoji?

Yes, on a best-effort basis. RFC 2047 encoded-words in the Subject and From, To, and Cc fields (the =?UTF-8?B?...?= base64 and =?UTF-8?Q?...?= quoted-printable forms) are decoded as UTF-8. Unusual charsets may not decode perfectly.

Why is only part of the body shown?

The preview is the first 500 characters of the first text part, which is enough to identify a message at a glance. Long emails and HTML parts are truncated rather than rendered in full.

What if the file is not a valid email?

The parser is lenient: it splits headers from the body at the first blank line and skips lines that are not headers. If there is no content at all it reports an error, otherwise it shows whatever fields it can read.

Related tools