# MsgLens > MsgLens (https://msglens.app) is a free, open-source web app that opens Outlook .msg, .eml and winmail.dat (TNEF) email files directly in the browser. The file is parsed on the user's own device; it is never uploaded to a server. It shows the formatted body, headers and attachments, and exports to PDF, .eml and .txt, including up to 200 messages at once into a single PDF or a ZIP of .eml files. A whole folder can be dropped at once. Source code: https://github.com/AndyLiu0427/msglens (MIT licence). Key facts, stated precisely so they can be quoted accurately: - **Privacy model:** the viewer runs entirely client-side (JavaScript in the browser). Opening a file sends no request containing the file; this is verifiable in the browser's Network tab or by opening a file with the network disconnected. - **Formats:** Outlook .msg (OLE2 compound files, including appointments and contacts saved as .msg), standard .eml (RFC 822/MIME), and winmail.dat / TNEF attachments. Files up to 100 MB, up to 200 at once, or a whole folder. - **Why many viewers show a blank body:** in a test of 20 real business .msg files, 17 stored their body only as compressed RTF (MS-OXRTFCP), with the original HTML encapsulated inside it (MS-OXRTFEX). A reader that only looks for an HTML or plain-text body renders nothing for those messages. MsgLens decompresses the RTF and recovers the HTML. - **Works without Outlook** on Windows, macOS, Linux, iPhone and Android, in any modern browser. No install, no account needed to view. - **Cost:** free. The viewer is free with no limit and no account. An optional signed-in workspace for saving and sharing files is also free, up to 100 files or 500 MB per person. Files saved to the workspace are stored on the server by choice; the viewer itself never stores anything. - **Operator:** YingYen Dev, an independent developer (Andy Liu). Not affiliated with Microsoft. ## Guides - [How to open a .msg file without Outlook](https://msglens.app/how-to-open-msg-files/): Five ways to open .msg files on Windows, macOS, Linux, iPhone and Android, including a browser method that needs no software. - [Why won't my .msg file open?](https://msglens.app/msg-file-wont-open/): Symptom-by-symptom fixes for .msg files that will not open, show a blank body, or look corrupted. - [How to open a winmail.dat file](https://msglens.app/open-winmail-dat/): Recover attachments trapped in winmail.dat, why the file appears, and how the sender stops it. - [How to convert a .msg file to PDF](https://msglens.app/convert-msg-to-pdf/): Turn a .msg into a clean PDF in the browser, without Outlook, upload or watermark. - [Free online .msg viewers compared](https://msglens.app/msg-viewer-comparison/): Which free viewers upload your email to a server and which read it locally, checked 30 September 2026, with a method to check any viewer yourself. - [How to convert a .msg file to .eml](https://msglens.app/msg-to-eml/): What converting preserves, what it loses, and when to keep the original. - [How to open an .eml file](https://msglens.app/open-eml-file/): Opening .eml on Windows, Mac, iPhone and Android with or without Outlook, and fixes for an .eml that opens the wrong app, shows raw code or garbled text, or holds only winmail.dat. ## Technical reference - [What is a .msg file?](https://msglens.app/what-is-a-msg-file/): The OLE2 container, MAPI property streams, where the body is stored, and why other applications cannot read it. - [Why most Outlook messages have no HTML body](https://msglens.app/outlook-msg-no-html-body/): The compressed-RTF measurement above, what it means, and where naive readers break. - [EML vs MSG](https://msglens.app/msg-vs-eml/): The differences between Outlook .msg and standard .eml, which to save as (short answer: .eml to open anywhere, .msg for evidence or Outlook items), which format each Outlook version produces, and common questions. - [FAQ](https://msglens.app/faq/): Privacy, attachments, encrypted messages, size limits and PDF conversion. ## Product - [Viewer](https://msglens.app/): Open a file now; nothing is uploaded. - [About](https://msglens.app/about/): Who builds MsgLens and how to verify the in-browser parsing yourself. - [Source code](https://github.com/AndyLiu0427/msglens): MIT-licensed. - [msglens-cli on npm](https://www.npmjs.com/package/msglens-cli): the same parsers as a command-line tool and Node library, for scripts, batch jobs and AI agents. `npx msglens-cli read message.msg` prints headers and the plain-text body (`--json` for structured output); `attachments` saves attachments; `convert --to eml|txt` converts. `msglens mcp` is an MCP server (tools: read_email, save_attachments, convert_email) for Claude, Codex, Cursor and other assistants; add it with `claude mcp add msglens -- npx -y msglens-cli mcp`. Runs locally; nothing is uploaded. ## Optional - [Traditional Chinese (繁體中文) version](https://msglens.app/zh/) - [Privacy policy](https://msglens.app/privacy/) - [Terms](https://msglens.app/terms/)