MSG to EML
Convert an Outlook .msg into a standard .eml that anything can open. Everything else here reads .eml, so this is the door into the rest of the section.
Processed on your device — no upload
How to use it
- Choose the .msg file.
- Press convert. Anything that could not be carried over is named.
- Download the .eml and open it anywhere.
How it works
A .msg is not a mail message. It is a container — the same little filesystem-in-a-file that a pre-2007 Word document is — holding one stream per property: the subject in one, the sender’s name in another, the body in a third, each attachment in a storage of its own. Nothing outside Outlook opens it, which is why a message forwarded by a colleague can be unreadable on a Mac, on a phone, and to everything else in this section.
So this is a rebuild, not a rename. The container is opened, the properties are read out, and a fresh message is written around them in the format the rest of the world uses. Saying that plainly matters, because the difference shows up later: a rebuilt message is not byte-for-byte what the sender transmitted, and it cannot be.
The headers the message arrived with are kept where Outlook stored them. Outlook keeps the original header block in a property of its own, so the Received chain, the Return-Path and the authentication results survive the conversion intact — which is the part that matters when the question is where a message really came from. What is dropped is the lines describing the body: those referred to the message as it was transmitted, and the body below them has just been written out again.
A DKIM signature will no longer verify. It is kept, because it is evidence that one was there and what it claimed. But the signature covers the body as transmitted, and the body has been rebuilt from properties Outlook decoded years ago. A .msg converter that quietly dropped the header would be hiding this; one that kept it without saying so would be implying a check that will fail.
What comes across: sender, recipients split into To and Cc, the date, the subject, the plain body and the HTML body, and the attachments — base64 encoded, with an image the message refers to by name kept beside the HTML so it still appears in place rather than arriving as a stray file.
What does not, and is named rather than guessed at. A message whose body exists only in Outlook’s compressed rich-text format is not read: that format is a compression scheme of its own wrapped around a word-processor format, and this tool says so instead of handing you an empty message. Nor is an attachment that is itself a whole message rather than a file. And where the sender is recorded as an internal directory name — the /O=EXCHANGE… string an office sees for its own colleagues — there is no address to write, so the From line carries the display name alone rather than an address somebody invented.
Once it is an .eml, the rest of this section will read it: the words on their own, or the message as a document.
A worked example
A colleague forwards quarterly-report.msg, 74 KB, and it will not open on anything you own. Choose it and press Convert the message.
You get quarterly-report.eml, and a result panel reading Recipients 1, Attachments 1. Opened in a text editor, the top of the file now reads From: Dana Okonkwo <dana@example.org>, To: Accounts <accounts@example.com>, Date: Tue, 4 Mar 2025 09:12:44 +0000, a subject written as an encoded word because it has an em dash in it, then the Received line the message actually arrived with. Below that, a plain part in quoted-printable and the attachment in base64.
The date is written in UTC rather than in your own time zone. Outlook stored it in UTC, so converting it would have put the location of whoever ran the conversion into a file about somebody else’s correspondence.
Now a harder one. internal-thread.msg came from an office mailbox, and after converting it the panel lists one thing under what could not be carried over: the sender is stored as an internal directory name rather than an address. The From line reads Dana Okonkwo with no angle brackets. That is the truth about the file — Exchange never wrote an address into it — and the alternative would have been to make one up.
If the message came from a Gmail export instead, it is already .eml and needs none of this. The four extensions and which is which are set out in the piece on why not to upload one.
Questions
What actually is a .msg file?
An Outlook message file, in Outlook’s own storage format rather than a mail format: a Compound File Binary container, which is a small filesystem inside one file, the same structure a pre-2007 .doc uses. Inside it, each property of the message — subject, sender, body, each attachment — is a separate stream.
Can I just rename a .msg to .eml?
No, and it is the first thing everybody tries. The file is a binary container, not text, so a mail client opening it finds no headers and no message. The properties have to be read out and a new message written around them.
Will the converted message be identical to what the sender transmitted?
No. It is rebuilt from the properties Outlook stored, so the encoding, the boundaries and the ordering are this tool’s rather than the original sender’s. The words, the addresses, the date and the attachments are the originals.
Are the original headers kept?
Yes, where Outlook kept them. It stores the header block the message arrived with as a property of its own, so the Received chain and the authentication results come across. Only the lines describing the body are dropped, because the body has been written again.
Why does the DKIM signature fail after converting?
Because a DKIM signature covers the body exactly as it was transmitted, and the body here has been rebuilt from decoded properties. The header is kept so you can see what was claimed, but it will not verify, and no converter can make it.
Why is the From line just a name with no address?
Because that is all the file holds. Inside an organisation Outlook records the sender as an internal directory name rather than an email address, and there is no address to recover. Writing a plausible one would be inventing evidence.
Do the attachments survive?
Yes, encoded as base64 the way mail carries anything that is not text. An image the message displays inline is kept beside the HTML with its identifier, so it still appears in place rather than arriving as a loose file.
What happens with an Outlook message that has no plain-text body?
If it has an HTML body, that is used. If the body exists only in Outlook’s compressed rich-text property, it is not read, and the tool says so rather than handing you a message with nothing in it.
Is the .msg uploaded to be converted?
No. The container is opened and the message rebuilt in your browser. This site has no backend, so there is nowhere for it to go — which is worth caring about, since the .msg files people convert are usually the ones from work.
Does it handle a message with an accented or Arabic subject?
Yes. Subjects and names outside plain ASCII are written back as encoded words, split so no character is ever cut in half, and any mail client will show them correctly.
Why does it refuse a file I know came from Outlook?
A .msg begins with a fixed run of eight bytes. If those are missing, the file is something else wearing the extension — usually an .eml that was renamed, occasionally a download that finished short.
Can it convert a whole folder of .msg files at once?
One at a time. Each conversion is a rebuild with its own things to report, and a batch that silently produced forty files with three quiet failures among them would be worse than doing them one by one.
Is MSG to EML free to use online?
Yes — free, with no account, no daily limit and no watermark. It runs online in your browser, and because the work happens on your own device it keeps working offline once the page has loaded.
Related Email tools
EML Viewer
Open an email without a mail client
open$termiva mail headers message.emlEmail Header Analyser
Who actually sent it, and from where
open$termiva mail attachments message.emlExtract Email Attachments
Pull the files out, nothing else
open$termiva mail open archive.mboxMBOX Viewer
Open a Gmail Takeout archive
open