Updated October 2026
Understanding why .msg files are so often a headache outside of Outlook comes down to one specific technical fact: they're not a text format at all. Here's what's actually inside one, at a level of detail useful for anyone who deals with these files regularly.
Compound File Binary Format (also known as OLE2 or "structured storage") is a binary container format Microsoft introduced decades ago as a general-purpose way to store multiple logical "streams" and "storages" (conceptually similar to files and folders) inside a single physical file on disk. Before Microsoft Office moved to the XML-based Open Office XML formats (.docx, .xlsx), this same CFBF container format was the basis for old-style .doc, .xls, and .ppt files. The .msg format reuses this same general-purpose container, just populated with a different internal structure specific to representing an email message.
Within a .msg file's CFBF container, the actual email content is stored as MAPI (Messaging Application Programming Interface) property streams — Microsoft's internal data-interchange format for representing email and calendar objects, originally designed for communication between Outlook/Exchange and other MAPI-aware software. Each piece of the message — subject, sender, recipient list, body text, each attachment — is stored as a separately-identified binary property stream inside the container, tagged with MAPI property identifiers (numeric codes) rather than human-readable field names. A parser has to know the mapping between those numeric MAPI property tags and their meaning (e.g., a specific tag number means "sender's display name") to make any sense of the binary data.
Unlike the MIME format behind .eml files — a published, open internet standard anyone can implement from the specification — the exact binary layout and full set of MAPI property tag meanings used inside real-world .msg files has never been comprehensively documented by Microsoft as a formal public specification in the way MIME is. Third-party support for reading .msg files (outside Outlook itself, or software explicitly licensing Microsoft's own libraries) has therefore always depended on community reverse-engineering: observing real .msg files, figuring out what each property tag represents by inspection and testing, and building parsers based on that accumulated community knowledge rather than an official spec.
This viewer uses @kenjiuno/msgreader, an open-source, MIT-licensed JavaScript library that implements exactly this kind of community-researched CFBF/MAPI parsing, running entirely client-side. Because it's a reverse-engineered implementation rather than Microsoft's own proprietary parsing code, it aims for broad compatibility with real-world .msg files across different Outlook versions, but — like any third-party implementation of an undocumented format — it can't guarantee perfect handling of every historical edge case or unusual encoding variant that's ever been produced.
Understanding this explains several things you might otherwise find confusing: why a .msg file looks like meaningless binary garbage in a plain text editor (it's not text — it's a structured binary container); why some very old or unusually-generated .msg files occasionally fail to parse in third-party tools even though Outlook itself opens them fine (an edge case in the undocumented format that community research hasn't fully mapped); and why genuinely converting a .msg file to another format requires software that actually understands this binary structure, rather than a simple rename or text-based transformation.
Is CFBF the same thing as a ZIP file? No — both are container formats that can hold multiple internal pieces of data, but they use completely different internal structures and compression/storage approaches. A ZIP utility cannot open a CFBF container like a .msg file.
Does Microsoft publish an official CFBF/MAPI specification anywhere? Microsoft has published some technical documentation on both CFBF (as "Compound File Binary Format") and various MAPI properties over the years as part of broader interoperability documentation efforts, but comprehensive, fully authoritative coverage of every real-world .msg variant has historically remained incomplete compared to how thoroughly documented open standards like MIME are.
Why do old .doc files share this same container format? Microsoft built CFBF as a general-purpose structured-storage format specifically so it could be reused across multiple Office and Outlook file types, which is exactly why old binary Office formats and .msg files share the same underlying container even though they represent completely different kinds of content.