Free EML and MSG Viewer
Open a saved email, .eml or Outlook .msg, to read it, list its attachments, see how it’s built, and view its HTML without loading tracking images.
What is an EML and MSG Viewer?
An .eml file is an email saved as plain text in the standard internet format, and a .msg file is Outlook’s own binary format. This viewer opens both and shows the message the way a mail client would, plus what’s underneath.
It decodes encoded subjects and names, quoted-printable and Base64 bodies, and every character set, then lists attachments with their sizes. The MIME view shows how the message is built, and the HTML view renders the body with remote images and backgrounds blocked, so opening a message doesn’t tell the sender.
Key Features
The Message, Readable
Sender, recipients, date, subject and the text body, with names and subjects decoded.
Attachments Listed
Each attachment’s file name, type and size, including RFC 2231 names with accents.
MIME Structure
Every part in order, with its type, charset, encoding and size, nested as the message nests them.
HTML Without Trackers
The HTML body is sanitised and drawn without loading remote images, so tracking pixels stay silent.
Outlook .msg Files
Outlook’s binary files open too, with sender, recipients, body, attachments and saved headers.
Perfect for everyone
- People who received an .eml or .msg attachment
- IT and legal teams reviewing saved mail
- Developers debugging email they send
How to Use the EML and MSG Viewer
Open the file or paste the source, then switch views.
Open the Email
Use Open .eml or .msg, or paste the raw source from Show original or View source.
Read the Message
Message shows the header lines, the text body and the attachment list.
Look Underneath
MIME parts shows the structure and Headers shows every header, decoded.
See the HTML Safely
HTML renders the designed version of the email without contacting the sender’s servers.
Emails, Opened
Each row is the raw source of an email and each answer is this viewer’s output in the mode on the chip. Picture the message before you reveal it.
“From: Grace Hopper <grace@example.net> To: Ada Lovelace <ada@example.org> Cc: team@example.org Subject: Notes on the engine Date: Sun, 25 Oct 2026 11:02:39 +0000 Message-ID: <n-1@example.net> Content-Type: text/plain; charset=utf-8 Ada, The second table needs a fix before Friday. Grace”
“From: Example Shop <orders@shop.example.com> To: ada@example.org Subject: =?UTF-8?Q?Order_1042_confirmed?= Date: Sun, 25 Oct 2026 16:14:01 +0000 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="outer" --outer Content-Type: text/plain; charset=utf-8 Your mug ships tomorrow. Invoice attached. --outer Content-Type: application/pdf; name="invoice-1042.pdf" Content-Disposition: attachment; filename="invoice-1042.pdf" Content-Transfer-Encoding: base64 JVBERi0xLjQKJcfsj6IKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c+PgplbmRvYmoK --outer--”
“From: News <news@example.com> To: ada@example.org Subject: Autumn issue Date: Sun, 25 Oct 2026 12:00:00 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="alt" --alt Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Read the autumn issue online. --alt Content-Type: text/html; charset=utf-8 <h1>Autumn issue</h1><p>Read it <a href="https://example.com/a">online</a>.</p> --alt--”
“From: Alerts <alerts@bank.example.com> To: ada@example.org Subject: Your statement is ready Date: Sun, 25 Oct 2026 07:00:00 +0000 Content-Type: text/html; charset=utf-8 <p>Hi Ada,</p><p>Your <b>October</b> statement is ready.</p><img src="https://t.bank.example.com/o.gif?id=9" width="1" height="1">”
“From: =?ISO-8859-1?Q?J=FCrgen_Weber?= <juergen@example.de> To: ada@example.org Subject: =?ISO-8859-1?Q?Gr=FC=DFe?= Date: Sun, 25 Oct 2026 09:30:08 +0100 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable Viele Gr=FC=DFe aus M=FCnchen!”
“From: Ada <ada@example.org> To: bob@example.com Subject: Fwd: Notes on the engine Date: Sun, 25 Oct 2026 13:00:00 +0000 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="f" --f Content-Type: text/plain See below. --f Content-Type: message/rfc822 From: Grace <grace@example.net> Subject: Notes on the engine Content-Type: text/plain The second table needs a fix. --f--”
“From: Büro <buero@example.de> To: ada@example.org Subject: Rechnung Date: Sun, 25 Oct 2026 10:00:00 +0100 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="r" --r Content-Type: text/plain; charset=utf-8 Anbei die Rechnung. --r Content-Type: application/pdf Content-Disposition: attachment; filename*=utf-8''Rechnung%20M%C3%A4rz.pdf Content-Transfer-Encoding: base64 JVBERi0xLjQK --r--”
“From: News <news@example.com> To: ada@example.org Subject: Autumn issue Date: Sun, 25 Oct 2026 12:00:00 +0000 MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="alt" --alt Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Read the autumn issue online. --alt Content-Type: text/html; charset=utf-8 <h1>Autumn issue</h1><p>Read it <a href="https://example.com/a">online</a>.</p> --alt--”
“Hi Ada, Here is the text I copied out of the email. Bob”
“msg:UEsDBBQAAAAIAA==”
The Parts Inside an Email
MIME splits a message into parts. These ten types and fields explain almost any email’s structure.
multipart/mixed
A body plus attachments, one after another. Most emails with files use it at the top.
“What usually sits inside it besides the body?”
multipart/alternative
The same content in several forms, usually text then HTML. Clients show the last one they can display.
“Which form does a client prefer?”
multipart/related
HTML plus the images it shows inline, linked by Content-ID.
“How does HTML refer to its images?”
text/plain
The plain-text body, which every client can show.
“Is a text part required?”
text/html
The designed body, with layout, links and images.
“Can HTML load remote images?”
message/rfc822
A whole email inside another, which is how many clients forward as an attachment.
“Does it have its own headers?”
Content-Transfer-Encoding
How the part is encoded for transport: 7bit, 8bit, quoted-printable or base64.
“Which encoding suits attachments?”
charset
The character set of a text part, such as utf-8 or iso-8859-1.
“What happens with the wrong charset?”
Content-Disposition
Whether a part is shown inline or offered as an attachment, with its file name.
“Which value means a downloadable file?”
boundary
The marker line separating parts of a multipart, chosen so it never appears in the content.
“How does the last boundary end?”
EML Versus MSG
Both hold one email, but they’re very different files.
.eml
Plain text in the internet message format (RFC 5322 with MIME). Any mail client can open it, and it pastes into this tool.
.msg
Outlook’s binary Compound File, holding MAPI properties instead of MIME. It needs a reader such as this one.
Saving as .eml
Thunderbird, Apple Mail and Gmail’s Download message save .eml. Outlook on the web does too.
Saving as .msg
Outlook for Windows saves .msg when you drag a message out or choose Save As.
What .msg Keeps
Sender, recipients, the body in text, HTML or RTF, attachments, and often the original transport headers.
Opening Email Files Safely
Email files from strangers can carry trackers and malware. These habits keep you safe, whether you open the file here or in a mail client.
Tracking Pixels
A 1-pixel remote image tells the sender when and where you opened a message. This viewer doesn’t load them.
Scripts Never Run
HTML is sanitised before display, so scripts, forms and event handlers are stripped.
Attachments Aren’t Opened
Attachments are listed, never executed. Scan any file before opening it on your computer.
Links Still Work
Links in the HTML are kept. Hover to read the real address before clicking anything.
Mismatched Names
An attachment called invoice.pdf with a different type, such as application/x-msdownload, is a red flag.
Check the Headers
To check whether a message is genuine, look at its authentication results with the email header analyzer.
When to Open an Email File
Whenever an email arrives as a file instead of in your inbox, or you need to see more of a message than your mail client shows.
Attachments From Colleagues
Read a forwarded .msg or .eml without importing it into a mail client.
Records and Legal Holds
Review saved emails and their attachments without changing them.
Debugging Sent Mail
Check the MIME structure and encodings of email your app sends.
Suspicious Messages
Look at the HTML and attachments without tracking images reporting back.
Moving Between Clients
Read old .msg files after leaving Outlook, on any computer.
Saving an Email as a File
Every major mail client can save a message to disk, though the option is often hidden in a menu. Saving the file keeps the headers and attachments, which copying the visible text does not.
Gmail
Open the message, choose the three-dot menu and pick Download message. Gmail saves an .eml file with every header and attachment included.
Outlook for Windows
Drag the message to a folder or the desktop, or choose File and Save As. Outlook saves a .msg file by default.
Outlook on the Web
Open the message, choose More actions, then Download, then Download as EML. The new Outlook for Windows offers the same option.
Apple Mail
Select the message and choose File, then Save As, with Raw Message Source as the format. Dragging a message to Finder also saves an .eml.
Thunderbird
Choose File, Save As, then File, or drag the message to a folder. Thunderbird always saves .eml files.
From an Attachment
When someone forwards a message as an attachment, it arrives as an .eml or .msg inside their email. Save that attachment, then open it here.
Email File Pitfalls
Why a saved email can look different from the one in your inbox, and what to check when a message opens with missing text, broken characters or no attachments.
Copying the Visible Text
Text copied from your inbox has no headers or MIME. Save the message or use its raw source instead.
Wrong Character Set
A missing or wrong charset turns accented letters into symbols. The source’s charset parameter decides.
Inline Images Missing
Images in multipart/related appear as attachments here, since cid: links aren’t followed.
RTF-Only .msg Bodies
Some older Outlook messages store the body only as compressed RTF, so the text may be short or empty.
Winmail.dat
Outlook can send attachments wrapped in a TNEF winmail.dat file, which needs a separate TNEF reader.