InboxUnpack

Convert MSG to EML

Converting .msg to .eml is genuinely useful and genuinely not a format conversion. A .msg holds MAPI properties; an .eml holds an RFC 5322 message. Turning one into the other is an act of construction, and how faithful the result can be depends entirely on whether the original message's internet headers happened to be stored inside the .msg.

When they were — which is the case for mail that was received rather than composed locally — the original header block is carried across verbatim, and the result is very close to the message as it arrived. When they were not, the headers are rebuilt from MAPI properties and the output says so, in the interface and in an X-InboxUnpack-Header-Origin header inside the file itself. Bodies, inline images and attachments are re-encoded into a proper MIME structure either way, and every file produced here is re-parsed before you are offered it.

The file is read by code running in this tab. It is not uploaded, not queued on a server and not seen by anyone but you — which also means there is no size limit imposed from outside, only what your own device can hold.

  1. 1.Drop one or more .msg files, or a folder of them.
  2. 2.Convert. Text and HTML bodies become a multipart/alternative, inline images become a multipart/related, and attachments become a multipart/mixed.
  3. 3.Download the .eml files individually, or the batch as a ZIP with a manifest recording which headers were original and which were reconstructed.

Drop email files here

Built for .msg. Nothing is uploaded — the file is read by code running in this tab.

What this page cannot do

  • A .msg from Sent Items usually has no stored transport headers. The .eml is then built from properties, and its Received chain, Message-ID and authentication results will be absent rather than invented.
  • The output is not byte-identical to the message as it was originally transmitted, and cannot be: the transfer encodings, boundary strings and part ordering are chosen here. Signatures over the original MIME structure — S/MIME, DKIM — will not verify against the converted file. The original .msg is always downloadable unchanged.
  • X.500 directory addresses cannot be turned into email addresses, so they appear as display names with no address.
  • Converting the other way, .eml to .msg, is not offered. Writing a Compound File that Outlook will open reliably is a different problem from reading one, and it is not shipped until it can be tested against Outlook itself.

If it did not work

The converted .eml has no Received headers.
Why: The source .msg stored none, which is normal for a locally composed message.
Try: Nothing to fix — check the X-InboxUnpack-Header-Origin header in the output, which records exactly this.
Thunderbird shows the message but not the inline images.
Why: The inline parts are referenced by Content-ID and some clients only resolve those inside multipart/related.
Try: They are written into a multipart/related when the message has any. If an image is still missing, the attachment list in the viewer will show whether it was in the .msg at all.
The subject looks different after conversion.
Why: The .msg stored a subject prefix and a normalised subject separately, and the converter rejoins them.
Try: The viewer's property inspector shows PidTagSubject, PidTagSubjectPrefix and PidTagNormalizedSubject so you can see what the source actually held.

Questions

Is my email actually uploaded anywhere?

No. There is no server here that accepts a file. The page's Content-Security-Policy sets connect-src to 'self', so the browser itself refuses any request to another origin, and form-action is 'none' so nothing can be submitted anywhere. The only network requests this site makes are for its own JavaScript, its own font files, and the Vercel page-view counter — which records that a page was viewed and nothing about what you opened. You can confirm all of it in your browser's network panel with the page open.

Will the converted file open in Thunderbird or Apple Mail?

Yes. The output is a standard RFC 5322 message with a MIME-Version header, correct boundaries and base64-encoded parts. Every file is re-parsed by this site's own MIME reader before it is offered to you, and the subject and attachment count are compared with the source; if either differs, the difference is reported rather than hidden.

How faithful is the conversion?

Honestly: bodies, attachments, inline images, recipients, subject and dates come across reliably. The header block comes across verbatim when the .msg stored one. What cannot come across is anything depending on the original byte-level MIME structure, because a .msg does not contain one. The output records which category it is in.

Can I convert a batch?

Yes — files or a whole folder. The queue isolates failures, supports pause, stop and retry, and produces a ZIP with a manifest listing every output file, its SHA-256 and the source it came from.

Related

  • Open Outlook MSG filesOpen .msg files from Outlook in your browser: body, HTML, recipients, dates, attachments and embedded messages, read from the real Compound File structure. Nothing is uploaded.
  • Convert MSG to PDFConvert Outlook .msg files to PDF with headers, body text and an attachment index with SHA-256 hashes. Runs entirely in your browser; nothing is uploaded.
  • Open EML filesOpen .eml email files in your browser with remote content blocked, full header analysis, attachment extraction and SHA-256 hashes. Nothing is uploaded.