With the occasion of changing machine (work location), I feel that’s the perfect moment to reorder my email fetching/reading/syncing process.
Everything is built around the notmuch email indexer (based on the xapian tagging systems)
Workflow
In this post I’ll describe the workflow as I set it on my machines. Every step will have it’s own post in future (probably).
Fetch emails
First thing is to get your remote emails copied locally to a maildir
folder.
I’ve used offlineimap
since some years now and I was a bit disappointed on how
slow it may be and how dirty the configuration file ends up.
I started looking around and found
isync/mbsync.
Now my configuration file is much cleaner and the fetching time decreased a
lot.
Tag Emails
This is of course the central part of the whole system. The basic idea is to do what Google does on your mails: scan them, index them but in a local database.
In this case the chosen app is notmuch.
Sync Emails
The problem here is that you probably have your mails synchronized on several local machines and for the nature of local synchronization, you end up with different databases on different machines.
Several solutions have been proposed to this (the more advanced of which is
muchsync
)
Discussion here.
For now I use notmuch dump/restore
with some syncing method (git or
syncthing).
E-Mail Address Book
Lightning fast notmuch-addrlookup, written in C.