A blazing fast, parallel EML to MBOX converter written in Rust.
______ __ __ _ _______ ____ __ __ ____ ____ __ __
| ____| | \/ | | | |__ __| / __ \ | \/ | | _ \ / __ \ \ \ / /
| |__ | \ / | | | | | | | | | | \ / | | |_) | | | | | \ V /
| __| | |\/| | | | | | | | | | | |\/| | | _ < | | | | > <
| |____ | | | | | |____ | | | |__| | | | | | | |_) | | |__| | / . \
|______| |_| |_| |______| |_| \____/ |_| |_| |____/ \____/ /_/ \_\
- Convert single EML file or directory of EML files to MBOX format
- Parallel processing for high performance on large directories
- Memory-efficient processing with chunked approach
- Progress reporting for large conversions
- Standards-compliant MBOX format
- Simple command-line interface
cargo install mailoxidegit clone https://github.com/solastrius/mailoxide.git
cd mailoxide
cargo build --releaseThe compiled binary will be available at target/release/mailoxide.
mailoxide [INPUT] [OUTPUT]Where:
INPUTis a path to an EML file or a directory containing EML files (default: "input")OUTPUTis the destination directory for the MBOX file (default: "input")
- Convert a single EML file to MBOX:
mailoxide /path/to/email.eml /path/to/output- Convert all EML files in a directory:
mailoxide /path/to/email/directory /path/to/output- Use default paths:
mailoxideThis will look for an "input" directory in the current path, find all EML files there, and save the output to the same "input" directory as "output.mbox".
MailOxide is designed to be extremely fast, even with large email collections. It achieves this through:
- Parallel processing with Rayon
- Memory-efficient chunked processing
- Buffered file I/O
- Progress reporting for large conversions
In real-world testing, it successfully processed over 30,000 emails (3.6GB) in minutes.
MIT
This is a Rust rewrite and optimization of the original Python eml2mbox tool by nick88msn.