Skip to content
OneKitly

Opening an .eml File Without Telling the Sender

Published 9/7/2026 · 5 min read · File tools

Daniel Okonkwo

Daniel OkonkwoFront-end developer and tech writer at OneKitly

Web performance · File formats

Checked against 3 sources

View profile
In short

An .eml file is one message exactly as it travelled: headers, a blank line, then the body, in plain text. You do not need the mail client it came from to read it — but you do need to be careful about how it is rendered, because an HTML message can reference images on the sender's server, and fetching one of those tells them the message was opened, from which address and at what time. That is not a side effect, it is the design of a read receipt nobody asked for. The viewer here renders the message inside a sandbox whose policy forbids every external load by default, and offers a button to release it for images if you decide you want them; images that are inside the file, referenced as cid:, are shown immediately from the attached bytes because displaying them sends nothing anywhere. The file is read in your browser and never uploaded, which for a saved message is the whole point.

A saved message is a text file you can read anywhere. The catch is that opening it in something that loads remote images announces the moment you did — which is what a tracking pixel is for.

Two kinds of image, and only one of them talks

A remote image is an address in the message pointing at a file on someone else's server; your reader fetches it when it draws the page, and that fetch carries your IP address, the time, and often a code identifying which copy of the newsletter was sent to you. Shrink such an image to one transparent pixel and it becomes invisible while still reporting — which is exactly what a tracking pixel is. Blocking remote loads costs a little layout and removes the report entirely.

An inline image is a different animal: it is an attachment inside the file, and the body refers to it as cid: followed by an identifier. Signatures, logos and screenshots pasted into a message usually arrive this way. Nothing has to be fetched to show them, so they are displayed straight away from the bytes already in front of you, and no server anywhere learns that you looked.

What the headers can tell you

The visible From line is chosen by whoever sent the message and proves nothing on its own. The interesting ones sit above it: Return-Path, which is where bounces actually go, and the chain of Received lines, each added by a server as the message passed through, read from the bottom up. A message claiming to come from your bank whose Received chain starts at a residential connection is worth a second look, and you can settle that question from the file without asking anyone.

Headers fold, which is why they can look mangled in a plain text editor: a long Received line continues on the following lines, each starting with a space or a tab, and reading them as separate headers is how a three-line hop turns into three broken fields. They are rejoined before display here, so what you see is the header as it was written.

EML viewerOpen a saved email and read it — sender, date, subject and body — with no mail client.Try the tool

Frequently asked questions

Can I open a .eml without any mail program installed?
Yes — that is what this is for. The file is plain text, so any text editor will show you the raw form, and the viewer renders the readable one: decoded headers, decoded body, attachments listed. It is also the usual way to read a message that was forwarded to you as a file, which no mail client will show you inline.
Is the message uploaded to be rendered?
No. It is parsed and rendered in your browser. That is worth more here than for most file types: a saved message is somebody's correspondence, often with an address book's worth of recipients in the headers and a document attached, and there is no good reason for it to travel to a server just to be read.
The message shows as a wall of =3D and =C3=A9. What is that?
Quoted-printable, the encoding that lets a message with accents travel over a channel that only guarantees plain ASCII. Each non-ASCII byte is written as an equals sign and two hexadecimal digits, and a line too long to send is broken with a trailing equals sign that means the next line continues it. Decoded, =C3=A9 is é and the broken lines rejoin. The viewer does that for you; a text editor does not, which is why the raw file looks like that.

Articles you may find interesting

All guides
ExplainerAn Attachment Grows by a Third Inside the EmailMail carries files as text, three bytes written as four characters. A 10 MiB attachment occupies 13.68 MiB of the message, which is why a 25 MB limit really means about 18 MiB of files.ExplainerAn .mbox Is Messages Glued End to End, and the Glue Is a LineOne file, thousands of messages, separated by a line beginning From. The format has one famous weakness, and it is the reason a message can lose its ending without anything reporting an error.ExplainerThe Same .ics File Can Mean Five Different TimesiCalendar writes a start time in one of three ways, and only one of them is unambiguous. A meeting written with a named zone, converted on machines in Paris, New York and Honolulu, spanned nineteen hours and changed day.How-toSplitting a File That Is Too Big to SendThe last resort when nothing can be compressed further. It works, and it has three sharp edges: the parts are useless on their own, the order is absolute, and the megabyte you set is not the megabyte the limit means.ExplainerWhy Compressing a File Twice Does Not Halve It TwiceThe first pass takes 30% off and the second takes nothing. That is not a broken tool — it is the difference between removing redundancy and removing information, and knowing which one you are doing tells you when to stop and what a second attempt actually costs.GuidePull the Plug: Which Online File Tools Actually Upload Your DocumentEvery online file tool promises your document is safe. Almost none tell you whether it leaves your machine at all. There is a five-second test that settles it without reading a single privacy policy, and it works on any tool — including this one.

Related tools

Sources

Spotted a mistake in this article?