InboxUnpack

Open and search MBOX mailboxes

An mbox is what you get out of a Google Takeout, a Thunderbird profile or an archived Unix mail spool: every message in a folder concatenated into one file, separated by lines beginning "From ". They routinely run to several gigabytes, which is precisely why uploading one to a website to look at three messages is a bad trade.

This page indexes the mailbox where it already is. A streaming scan finds the message boundaries and reads only the header block of each — not the bodies, not the attachments — so a mailbox with tens of thousands of messages becomes a searchable list in seconds and stays inside a bounded amount of memory. Opening a message parses just that one. Search is instant because it runs against the local index.

The From-line escaping convention is detected rather than assumed, which matters more than it sounds: mboxo and mboxrd escape differently, and unescaping the wrong one silently corrupts every quoted reply in the file.

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 an .mbox file. It is scanned for message boundaries, and the header of each message is read to build the index.
  2. 2.Search and filter by sender, subject, date range or free text; the list is virtualised, so a mailbox of any size scrolls smoothly.
  3. 3.Open any message to read it with remote content blocked, or select several and export them as .eml files, a new .mbox, a PDF, or their attachments as a ZIP.

Drop email files here

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

What this page cannot do

  • The whole file is held in memory while it is open, because random access to a message needs it. That is the honest constraint: a 2 GB mailbox needs roughly 2 GB of headroom in the tab. Chromium handles more than WebKit does; Safari is given a sequential queue for the same reason. A file beyond what this browser is likely to manage — about 1.5 GB on Safari, less on a phone — is flagged before anything starts, with the reason and the option to try anyway, rather than being allowed to kill the tab half an hour in.
  • Search matches substrings in the sender, subject, recipients and List-ID. It does not search message bodies — indexing those would mean decoding every body up front, which is exactly the cost this design avoids.
  • The From-line separator is detected from the file. When a file contains no escaped From-lines at all the convention cannot be determined, and it is read as mboxrd — which leaves unescaped text unchanged — and the ambiguity is reported.
  • Attachment counts in the list are shown as "may have" until a message is opened, because reading them for every message would defeat the point of a header-only index.

If it did not work

The mailbox shows more messages than expected.
Why: A body line beginning "From " was mistaken for a separator by whatever wrote the file.
Try: This viewer rejects a separator that is not followed by a header block and reports how many it rejected. If the count still looks wrong, the number of rejected separators is shown in the mailbox notes.
Opening the file uses a lot of memory.
Why: That is inherent — the file has to be resident to open messages from it.
Try: Close other tabs, or split the mailbox first. The size is shown before indexing starts.
Quoted replies start with an extra > character.
Why: The file was written by one convention and read as the other.
Try: The detected convention is shown in the mailbox notes. Report the file if it looks wrong — the detection is deliberately conservative.

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.

Can I open a Google Takeout mailbox?

Yes. Takeout produces a standard mbox. Extract the .mbox out of the Takeout ZIP first — this page reads mail files, not archives — and drop it here.

How large a mailbox can it handle?

The indexing is streaming and bounded, so the limit is how much the tab can hold, not how long the file is. In practice several gigabytes on Chromium on a desktop, and rather less on Safari and on phones. The README records measured numbers for a real mailbox on both engines.

Can I export just some of the messages?

Yes. Select any set of messages and export them as individual .eml files in a ZIP, as a new valid .mbox with the From-line escaping reapplied correctly, as a single PDF, or as just their attachments with SHA-256 hashes and a manifest.

Why can't I load the remote images in a message?

Because turning them on would mean weakening the site's Content-Security-Policy for every page and every visitor, and a policy broad enough to fetch one sender's images is broad enough to fetch anyone's. Rather than offer a switch that quietly undoes the guarantee, this viewer lists every remote resource the message references — the full URL, the element that referenced it, and which of them look like open-trackers — so you can see what would have been fetched without fetching it. Download the original message and open it in a mail client if you need the images rendered.

Related

  • 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.
  • Convert EML to PDFConvert .eml email files to PDF without uploading them. Headers, body text, reply chains and a full attachment index with SHA-256 hashes, laid out on real pages — entirely in your browser.
  • Extract email attachmentsPull every attachment out of .eml, .msg and .mbox files, with SHA-256 hashes and a manifest, as a ZIP. Runs entirely in your browser; nothing is uploaded.