— Developer Tools

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.

— Samples
Valid
Live

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.

1

Open the Email

Use Open .eml or .msg, or paste the raw source from Show original or View source.

2

Read the Message

Message shows the header lines, the text body and the attachment list.

3

Look Underneath

MIME parts shows the structure and Headers shows every header, decoded.

4

See the HTML Safely

HTML renders the designed version of the email without contacting the sender’s servers.

Worked Examples

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.

REF_001A plain-text message

“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”

REF_002Message with a PDF attached

“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--”

REF_003Parts of a newsletter

“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--”

REF_004HTML-only email with a tracking pixel

“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">”

REF_005Latin-1 quoted-printable

“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!”

REF_006Parts of a forwarded email

“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--”

REF_007Parts with an RFC 2231 filename

“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--”

REF_008Decoded headers

“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--”

REF_009Body text without headers

“Hi Ada, Here is the text I copied out of the email. Bob”

REF_010A .zip opened as .msg

“msg:UEsDBBQAAAAIAA==”

MIME Parts

The Parts Inside an Email

MIME splits a message into parts. These ten types and fields explain almost any email’s structure.

01 / MULTIPART

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?”

02 / MULTIPART

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?”

03 / MULTIPART

multipart/related

HTML plus the images it shows inline, linked by Content-ID.

“How does HTML refer to its images?”

04 / TEXT

text/plain

The plain-text body, which every client can show.

“Is a text part required?”

05 / TEXT

text/html

The designed body, with layout, links and images.

“Can HTML load remote images?”

06 / MESSAGE

message/rfc822

A whole email inside another, which is how many clients forward as an attachment.

“Does it have its own headers?”

07 / CONTENTTRANSFERENCODING

Content-Transfer-Encoding

How the part is encoded for transport: 7bit, 8bit, quoted-printable or base64.

“Which encoding suits attachments?”

08 / CHARSET

charset

The character set of a text part, such as utf-8 or iso-8859-1.

“What happens with the wrong charset?”

09 / CONTENTDISPOSITION

Content-Disposition

Whether a part is shown inline or offered as an attachment, with its file name.

“Which value means a downloadable file?”

10 / BOUNDARY

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.

Tip 01

Tracking Pixels

A 1-pixel remote image tells the sender when and where you opened a message. This viewer doesn’t load them.

Tip 02

Scripts Never Run

HTML is sanitised before display, so scripts, forms and event handlers are stripped.

Tip 03

Attachments Aren’t Opened

Attachments are listed, never executed. Scan any file before opening it on your computer.

Tip 04

Links Still Work

Links in the HTML are kept. Hover to read the real address before clicking anything.

Tip 05

Mismatched Names

An attachment called invoice.pdf with a different type, such as application/x-msdownload, is a red flag.

Tip 06

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.

Tip 01

Gmail

Open the message, choose the three-dot menu and pick Download message. Gmail saves an .eml file with every header and attachment included.

Tip 02

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.

Tip 03

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.

Tip 04

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.

Tip 05

Thunderbird

Choose File, Save As, then File, or drag the message to a folder. Thunderbird always saves .eml files.

Tip 06

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.

Tip 01

Copying the Visible Text

Text copied from your inbox has no headers or MIME. Save the message or use its raw source instead.

Tip 02

Wrong Character Set

A missing or wrong charset turns accented letters into symbols. The source’s charset parameter decides.

Tip 03

Inline Images Missing

Images in multipart/related appear as attachments here, since cid: links aren’t followed.

Tip 04

RTF-Only .msg Bodies

Some older Outlook messages store the body only as compressed RTF, so the text may be short or empty.

Tip 05

Winmail.dat

Outlook can send attachments wrapped in a TNEF winmail.dat file, which needs a separate TNEF reader.

Frequently Asked Questions