I have been writing several posts about emacs but today I would like to specifically tell my readers about the nifty tool I use for email management, mu and its main component, mu4e. Just before I start, let me briefly remind a few things about email on emacs: there’s not a single tool to do everything around email. In fact, there’s quite a lot of different tools, related or not, that perform one job but does it quite well. As an example, there is one tool to fetch the emails from your IMAP servers, one tool to index them on your system, another one you could call an email client, but wait, here’s at least one more: a tool to compose and send emails. Sometimes, the tools are integrated with one another, sometimes they are not, but they are always a collection of disctinct parts.
At this point, one question should be answered: why would I use emacs tools for handling emails? I’ve written several posts about that, so I’ll keep it short: personal challenge, curiosity on the one hand and a rather constant use of emacs for a variety of tasks nudging me towards a loose integration of several parts: org-mode, mu/mu4e, dired, ERC (irc)… In short, using mu4e today makes me gain time, and were it only for this reason, relying on emacs for email would be the right answer. Well, there’s another reason I use mu/mu4e that wasn’t obvious to me at the beginning: email search.
Now some readers may jump from their armchairs (or whatever seat they’re on) and wonder how I could not see there’s email search capabilities built in every email client out there: Outlook, Apple Mail for the proprietary world, Thunderbird, Kontact, Evolution, Claws Mail all have email search integrated. Yet nothing comes close to mu when it comes to fast and effective email search. I have over 10GB of emails spread around various inboxes. To this day, mu will produce results that are far superior to all of these, both in speed and quality. In second comes notmuch, yet another plain text indexer that works with emacs or mutt; for graphical clients, only Claws Mail comes close. All the other clients, proprietary or free software bite the dust when it comes to email search.
At the end of January, mu/mu4e 0.9.16 was released. This latest stable version sports a number of interesting improvements. Some have to do with performance, but others add more refinements to the user interface; a third type of improvement this new release introduces is the ability to switch from one email account to another, or more broadly, from one type of settings matching specific kinds of use cases to another. This ability is simply called “contexts”.
Little by little, the mu project is not just filling the gaps with more established email environments such as Gnus, it is adding refinements and powerful features that make it possible to make someone coming from the world of graphical email clients at home. Which brings me to the other question: what does it take for someone like me to jump ship and use Emacs for email?
A lot, and at the same time, not much. You cannot obviously get started with Emacs by configuring an email client unless you had had experience with non graphical clients before. One must get acquainted with Emacs first, its way to do things, use it for real life work, and then ponder a possible migration of email clients.
The other key element goes back to what I had alluded at the beginning of this post: just like many other tools for emacs, mu and mu4e are themselves a collection of tools, and rely on several other tools to work. Let’s take mu4e and see what it needs to work functionally:
- Mu, the mail indexer
- Creating folders matching your IMAP account(s)
- A tool to write and send message : mu4e can do that but the tool is not complete yet, so most of the time you rely on a different tool (or mode in Emacs parlance), in this case the “message mode” from Gnus
- Tools like offlineimap to fetch and sync emails back an forth between your local folders and the mail server(s)
- A tool to handle the smtp protocol, in my case “msmtp”
- Various tools to visualize html messages and integration of tools such as org-mode to process messages.
All these tools do not “belong” to the mu project and you need to configure them separately. This can be time consuming, even though it’s probably half the fun as the saying goes.
Once they’re set however, you will have learned a lot about emacs and you will find yourself very productive. So productive in fact that you will come to rely on emacs and mu to handle your mails on a daily basis.
One important thing to keep in mind is that mu/mu4e keeps getting better. Its rise to prominence in the world of emacs email client is for good reasons: I expect that aging tools such as Gnus will have to improve significantly or face a slow death in front of tools such as mu.