Do you have a lot of mail? I have a lot of mail. There're inbox zero or archive zero people. I'm not one of them. I recently realized that my gmail account contains roughly 650.000 emails. I looked at that and I began to wonder.. Why?.. Sure, I've been using Gmail since 2004 but still, that's 38.000 Emails per year which strikes me as a bit on the crazy side of things. Curious as I am I wanted to figure out where all these mails came from.
Turns out that is a tricky problem because Gmail doesn't offer any tooling for such a use case. Hence I build my own. This tool parses all your emails and allows you to dig into them with a treemap (see screenshot below):
- Import all your local mails (currently, only MBox, Apple Mail and Gmail Backups are supported)
- Build up clustered visualizations of your mails to see and understand what kind of emails you have
- Cluster the emails by sender domain / name, month, day, year, name, and some more
- Additional filters for seen mails or tags / labels
- See all the mails for the current set of filters / current cluster
- Save the generated database as a SQLite file so you can do additional queries yourself (or open it again)
- Very fast email parsing / import. My 650k mails are imported in ~1 Minute on a Macbook M1 Pro Max and ~ 2 Minutes on a Intel Core i7-8700B 3.2 Ghz.
- Cross platform (macOS, Windows, Linux and a Web Demo)
- The app is 13MB big and consumes ~150MB of memory on macOS
Buliding a cross platform app in Rust was an interesting learning experience. So was looking into various email formats and email RFCs. It is easy to take these things for granted. I'll write a couple more blog posts in the future about egui, emails, cross platform Rust development, and so on.