To convert mbox to individual .eml files, use a Python script with the built-in mailbox module, the command-line tool mb2md, or a GUI extractor like Aid4Mail. Each message in the mbox becomes one .eml file. But most modern readers open mbox directly, so the split is often unnecessary.
When you actually need EML
- Importing into Outlook on Windows (Outlook reads EML natively, not mbox)
- Forensic review tools that index one file per message
- Cloud services that accept EML uploads (some e-discovery platforms)
- Attaching a single message to a ticket, email, or court filing
Skip the split if you just want to read or search the archive — any mbox reader handles that in place.
Option 1: Python (free, three lines)
import mailbox
for i, msg in enumerate(mailbox.mbox("archive.mbox")):
open(f"msg-{i:06d}.eml", "wb").write(msg.as_bytes())
Produces one .eml per message. Works on any OS with Python 3. msg.as_bytes() preserves the original MIME bytes — important if hashes matter for forensic work.
Option 2: mb2md (Unix / macOS)
mb2md converts mbox to maildir (one file per message). Rename the files to .eml:
mb2md -s archive.mbox -d output/
cd output/cur && for f in *; do mv "$f" "$f.eml"; done
Option 3: GUI extractors (commercial)
| Tool | Approx. price | Notes |
|---|---|---|
| Aid4Mail | $60 | Windows, preserves Unicode subjects |
| Systools MBOX Converter | $49 | GUI, handles large archives |
| Stellar Converter for MBOX | $79 | Supports all mbox variants |
One-click export, but most re-encode attachments, which changes MD5 hashes. Avoid for chain-of-custody work.
What can go wrong
- Attachment re-encoding corrupts forensic hashes. Stick to Python’s
as_bytes()if hashes matter. - Filename collisions. Naming files by subject breaks when two messages share a subject. Use an index or
Message-ID. - Character encoding. Non-ASCII subjects (Japanese, Arabic, etc.) need MIME-decoding before being safe as filenames.
- Disk use doubles. A 20 GB mbox becomes ~20 GB of EMLs plus filesystem overhead.
Reading without converting
If the goal is to search, thread, and read the archive, tools like tomorrow-box open mbox directly. No split, no re-encode, no extra disk. Conversion is only worth it when the downstream tool requires EML.