I could not find the ability to import `.mbox`. Do you have plans for it or am I looking at the wrong options. Gmail exports as .mbox. I have been using Thunderbird as my mail backup but I need to do things manually. 20+ years of mails are scattered across a few mailboxes and exports. I would love to import them in a single searcheable archive.
I like replying to emails from the 2005s, 2010s, etc. Of course, the recipients love them too.
Haven't consider this kind of functionality yet, but I think this is the kind of functionality we need in the product that is being built.
I believe maildir is a better format for email cold storage. But ability to import .mbox - a real world need. Added it to the TODO list.
Current short term roadmap, with random priorities:
- Outlook oath fix
- Linux release
- .mbox import
- search improvements, to have more powerful search
Love your use case of replying to emails from the past.
I built MailVault, a free and open-source macOS email client focused on one thing: owning your emails locally.
The idea came from a friend who works in logistics. Every few months he'd hit his 10GB mailbox cap — packed with CMR documents, invoices, and shipping
confirmations he legally can't delete. His options were always: pay for more server storage, manually export to desktop folders, or risk losing records he's
required to keep. I figured there should be a better way.
What it does:
MailVault connects to any IMAP account (Gmail, Outlook, Yahoo, iCloud, Fastmail, ProtonMail via Bridge, etc.) and stores every email as a standard .eml file in
Maildir format on disk. No proprietary database — one plain text file per email. You can open them in Apple Mail, Thunderbird, or any mail client. Even after emails are deleted from the server, your local copies remain searchable and accessible offline.
Tech stack:
- Tauri v2 (Rust backend + React frontend) — no Electron, no bundled Chromium
- Native Rust IMAP/SMTP via async-imap + lettre — all email operations run in-process, credentials never leave the app
- OAuth2 PKCE for Gmail and Microsoft 365 — uses Thunderbird's public client IDs, so no app registration needed
- macOS Keychain for credential storage, App Sandbox enabled
Some engineering I'm proud of:
Earlier versions used a Node.js sidecar for IMAP, which turned into a saga of sandbox failures — WKWebView blocking blob URLs, App Sandbox blocking localhost HTTP, port conflicts, JIT restrictions. The fix was rewriting everything in native Rust, which eliminated an entire class of problems.
For large mailboxes (tested with 17k+ emails), I implemented CONDSTORE delta sync (4-tier decision tree that can skip IMAP calls entirely when nothing changed), ESEARCH for compact UID responses, COMPRESS=DEFLATE (~70-80% bandwidth reduction), UID range compression, chunked fetches, a two-pool connection design (background vs. priority), and virtual scrolling with fingerprint-based memoization.
There's also a chat view that merges sent + received emails into iMessage-style conversation bubbles, which turned out to be a surprisingly nice way to read email threads.
I could not find the ability to import `.mbox`. Do you have plans for it or am I looking at the wrong options. Gmail exports as .mbox. I have been using Thunderbird as my mail backup but I need to do things manually. 20+ years of mails are scattered across a few mailboxes and exports. I would love to import them in a single searcheable archive.
I like replying to emails from the 2005s, 2010s, etc. Of course, the recipients love them too.
Haven't consider this kind of functionality yet, but I think this is the kind of functionality we need in the product that is being built. I believe maildir is a better format for email cold storage. But ability to import .mbox - a real world need. Added it to the TODO list.
Current short term roadmap, with random priorities: - Outlook oath fix - Linux release - .mbox import - search improvements, to have more powerful search
Love your use case of replying to emails from the past.
Hey HN,
I built MailVault, a free and open-source macOS email client focused on one thing: owning your emails locally.
The idea came from a friend who works in logistics. Every few months he'd hit his 10GB mailbox cap — packed with CMR documents, invoices, and shipping confirmations he legally can't delete. His options were always: pay for more server storage, manually export to desktop folders, or risk losing records he's required to keep. I figured there should be a better way.
What it does:
MailVault connects to any IMAP account (Gmail, Outlook, Yahoo, iCloud, Fastmail, ProtonMail via Bridge, etc.) and stores every email as a standard .eml file in Maildir format on disk. No proprietary database — one plain text file per email. You can open them in Apple Mail, Thunderbird, or any mail client. Even after emails are deleted from the server, your local copies remain searchable and accessible offline.
Tech stack:
- Tauri v2 (Rust backend + React frontend) — no Electron, no bundled Chromium - Native Rust IMAP/SMTP via async-imap + lettre — all email operations run in-process, credentials never leave the app - OAuth2 PKCE for Gmail and Microsoft 365 — uses Thunderbird's public client IDs, so no app registration needed - macOS Keychain for credential storage, App Sandbox enabled
Some engineering I'm proud of:
Earlier versions used a Node.js sidecar for IMAP, which turned into a saga of sandbox failures — WKWebView blocking blob URLs, App Sandbox blocking localhost HTTP, port conflicts, JIT restrictions. The fix was rewriting everything in native Rust, which eliminated an entire class of problems.
For large mailboxes (tested with 17k+ emails), I implemented CONDSTORE delta sync (4-tier decision tree that can skip IMAP calls entirely when nothing changed), ESEARCH for compact UID responses, COMPRESS=DEFLATE (~70-80% bandwidth reduction), UID range compression, chunked fetches, a two-pool connection design (background vs. priority), and virtual scrolling with fingerprint-based memoization.
There's also a chat view that merges sent + received emails into iMessage-style conversation bubbles, which turned out to be a surprisingly nice way to read email threads.
Links:
- Website: https://mailvaultapp.com
- GitHub: https://github.com/GraphicMeat/mail-vault-app
- macOS only for now (Intel + Apple Silicon). Linux is the next platform on roadmap.
Happy to answer any questions about the Tauri/Rust IMAP architecture, the sidecar migration, or anything else.