What a .msg file actually is
A .msg file is a Compound File Binary container — a small filesystem inside a single file, the
same structure Windows Installer uses for .msi packages. It is not text, and it is not a .eml. Each part
of the message sits in its own named stream: __substg1.0_0037001F holds the subject,
__substg1.0_1000001E the body, __substg1.0_37010102 an attachment’s bytes.
The eight hex digits are a MAPI property tag followed by a type code.
This is why a .msg looks like gibberish in a text editor and why most systems cannot open one. Outlook for Windows writes the format; Apple Mail, Gmail, Android and Chromebooks do not read it. The message is intact and perfectly readable — it just needs something that understands the container.
How to open a .msg file without Outlook
- Open the message. Drop the .msg onto the box above, or click to browse. The file is read from your disk by the browser; no copy is sent anywhere.
- Read the header fields. Subject, sender, recipients and the sent and received timestamps are listed first. Timestamps are shown in UTC, exactly as Outlook stored them.
- Save the attachments. Every attachment is listed with its type and size. Save writes the original bytes, so a spreadsheet arrives as the same file the sender attached.
- Read or export the body. The message text appears underneath. Copy message puts it on your clipboard; Save as .txt writes the headers, recipients, attachment list and body to one plain-text file.
What comes out
- Header fields — subject, sender name and address, To, Cc and Bcc, conversation topic and message id.
- Timestamps — sent, received, created and modified, read from the fixed-property stream and converted from Windows FILETIME to readable UTC.
- The recipient list, with each entry labelled To, Cc or Bcc and showing the resolved SMTP address where the message carries one.
- Every attachment, saved byte for byte at its original size, with its MIME type shown and inline images identified by their content id.
- The message body, plain text where the message has it, HTML source otherwise.
- Internet headers — the full Received chain, when the message kept it.
What is supported, and what is not
Both string encodings are read. Modern messages store text as UTF-16 (001F), older ones as
single-byte Windows-1252 (001E), and mixing them up is the usual reason a subject line comes
out as alternating letters and blanks. Attachments and recipients each live in their own storage inside the
container, so the directory tree is walked rather than the streams simply listed.
Streams under 4 KB do not get their own sectors — they are packed into a secondary “mini stream” with its own allocation table. In a typical message almost every field is under 4 KB, so a reader that ignores this returns an empty subject and zero-byte attachments.
Bodies stored only as compressed RTF are not decompressed. The tool says so rather than showing an empty
box, and every header, recipient and attachment is still read in full. .eml, .pst
and .ost files are different formats and are detected rather than misparsed.
Why the message is never uploaded
The file is read from your disk by the browser and parsed there. No server takes part, so the message never leaves your device.
This matters more for email than for most formats. A .msg is somebody’s actual correspondence — a contract, a legal thread, a client’s personal details — and the usual way to open one online is to upload it to a converter and trust a stranger with the contents. Nothing is uploaded here, so there is nothing to trust. The message body is also displayed as text rather than rendered as HTML, which means tracking pixels in it never load and links in it are never live.
What this tool does not do
This is a reader, not a mail client. Five boundaries:
- It does not send, reply to or forward. The message is opened, not delivered.
- It does not edit or re-save as .msg. Output is plain text and the original attachments.
- It does not open .pst or .ost archives. Those are mailbox databases holding many messages, not a single message.
- It does not decompress RTF bodies. Messages sent as RTF-only show their headers and attachments but not their text.
- It does not render HTML mail. HTML bodies are shown as source, deliberately.
Digital signatures and S/MIME encryption are not verified or decrypted. An encrypted message shows its envelope and its encrypted attachment, which is all any reader can show without the private key.
Why people need to open a .msg file
- Working on a Mac or Chromebook — a Windows colleague forwards a saved message and nothing on the machine will open it.
- Legal and compliance review — disclosure bundles arrive as folders of .msg files, and the headers and timestamps are the evidence.
- Getting the attachment out — the invoice or contract is inside the message and the message will not open.
- Checking a suspicious email — reading the Received chain and the real sender address without rendering the message or loading its images.
- Archiving — converting a folder of saved messages into readable text before storing them.
.msg compared with .eml and .pst
Three formats get confused constantly, and they are not interchangeable. A .msg is one message in a Compound File container, written by Outlook for Windows. A .eml is one message as plain RFC 822 text, written by almost everything else — it opens in any text editor. A .pst or .ost is an entire mailbox database holding thousands of messages, and is not a single message at all.
The practical rule: if the file opens as readable text, it is a .eml. If it opens as binary noise, it is a .msg and belongs here. If it is hundreds of megabytes, it is a .pst and needs Outlook.
For other Compound File containers, use the MSI extractor — the same structure, a different payload. For attachments once you have saved them, use the DOCX text extractor or the Excel data extractor. To pull every address out of a body you have copied, use the email extractor.
For a detailed breakdown of email container formats, read our guide on EML vs MSG file format, learn how to open MSG files on Mac, Linux & Chromebook, or inspect routing data in how to read email headers.
.msg format internals and reading edge cases
A .msg file is a Compound File Binary Format (CFBF) container — the same technology
as legacy .xls and .ppt files. Inside, MAPI properties are stored as storage/stream pairs:
PR_SUBJECT (tag 0x0037) is a stream named __substg1.0_0037001F for Unicode or
..._001E for a single-byte codepage encoding. The suffix 001F signals a Unicode
string (UTF-16LE); 001E signals a codepage-encoded string.
Three edge cases: (a) embedded message attachments — a .msg forwarded as an attachment inside another .msg — are CFBF storages nested within the parent's attachments storage; this tool lists them as attachments but does not parse them recursively; (b) when both an HTML body (PR_HTML, tag 0x1013) and a plain-text body (PR_BODY, 0x1000) are present, the HTML body is displayed and the plain-text body is available as a fallback; (c) BCC recipients are stored in the recipients storage alongside TO and CC entries, each with a type flag (MAPI_TO=1, MAPI_CC=2, MAPI_BCC=3) — in a .msg written by the sender, all three types are present and visible, unlike in the delivered copy received by recipients.
Frequently asked questions
Is there a free MSG viewer online that does not require Outlook or uploads?
Yes. EasyExtract provides a free in-browser MSG viewer online. Drop your .msg file onto this page to read the sender, recipient, subject, full message body, and download embedded attachments 100% privately without uploading email files to any server.
How do I open a .msg file without Outlook?
Drop the file onto this page. The subject, sender, recipients, date, body and attachments are read in your browser, with no Outlook and no account needed.
What is the difference between .msg and .eml?
A .msg is one message stored in a Compound File binary container by Outlook for Windows. A .eml is one message stored as plain RFC 822 text and opens in any text editor. They hold the same kind of content in completely different containers, which is why one is readable in Notepad and the other is not.
Can I open a .msg file on a Mac?
Yes, on this page. macOS has no built-in support for the format, so a .msg either does nothing when double-clicked or opens as binary noise in TextEdit.
Is my email uploaded to a server?
No. The file is read from your disk and parsed inside your browser. Nothing is transmitted, which is the point — a saved message is real correspondence.
Can I get the attachments out of a .msg file?
Yes. Every attachment is listed with its type and size, and Save writes the original bytes, so the file is identical to the one the sender attached.
Why is the message body empty?
The message almost certainly stores its body as compressed RTF, which this tool does not decompress. The headers, recipients and attachments are still read in full, and the page says so rather than showing a blank box.
Does it open .pst or .ost files?
No. Those are whole mailbox databases containing many messages, not a single message, and they need Outlook or a dedicated mailbox tool.
Why is the HTML shown as code instead of a formatted email?
Because rendering a stranger's email markup is how tracking pixels load and spoofed links get clicked. This is a reader, so the source is shown and nothing in the message runs.
Are the timestamps in my timezone?
No, they are shown in UTC exactly as Outlook stored them. Windows records them as FILETIME values, and converting to a local timezone would silently change the times a legal or compliance reader depends on.