Emacs & the obsessive email mongerer

I had already mentioned in passing here that I am using Emacs for a variety of tasks: outline, project management and planning with Org-Mode, IRC (go figure, my default email client on all my machines is Emacs’ ERC), notes editing or quick scribbling with the Scartch buffer (happens to me all day long), and regularly, albeit less frequently than in 2013, various editing of html pages, javascript and sometimes even Python when I dare to edit one or two things in Python scripts. A consequence of all these use cases is that I have Emacs open almost everyday on almost any of my machines. While most of my “training” aims at perfecting my use of org-mode, I have slowly become interested in the various email components of Emacs. This is where my insistence on choosing the perfect (graphical) email client in the past comes back kicking. To be sure, I am not ready to dump my beloved Claws Mail just yet, and I may just as well never go for a non-graphical client. However, I took this vacation time to configure my Emacs with one of my email accounts and give it a shot, and I’ve spent two weeks with it now.

1. Some explanations in the background

I won’t make this overly technical, but it is important to first state that Emacs does not come with one or several email clients: rather, it uses a set of different software components to process email, some of them being part of Emacs and some others, working in conjunction with Emacs (such as SendMail, OfflineImap, etc.) running outside as completely standalone programs. Now, it is also important to state that I have not used nor tried every email “client” on Emacs, and I don’t think I will. However, I’m a taker for information on some of these, given that I have specific requirements that may be satisfied with a few of these. I’m listing the requirements below:
– multiple email accounts and mailboxes (that works for pretty much any choice available in Emacs)
– IMAP and POP (I can live without POP, but it would still be nice to have the POP support)
– encryption support with GPG
– MH or MailDir mailboxes: please no standard Unix mailbox (aka mbox). It may sound weird, but I have large inboxes and stuffing everything in more or less one file is an utter catastrophy. On top of this, mbox support is of different quality given the email clients I have used in the past: Thunderbird, Mozilla Mail, Apple Mail, etc. Basically I had horror stories with mbox and I’m not keen on living them again. These days all my mail is in MH folders.
– Active development/maintenance
– Speed (If I bash Thunderbird or Evolution for resources hogging and slow performance, I will do exactly the same with any Emacs email tool).
– something to handle html mail or in general mail sent by people who have no clue about email, such as regular people. I know html mail sucks, however I do know a lot of people who send this kind of annoyances, and believe me, there are many of them out there.
– Not critical at this stage, but good contacts managements, calendar integration and even org-mode are a big plus. Fortunately this is the case with almost every email components in Emacs, except perhaps for contacts management.
– I know Mutt. I have heard of Mutt. Perhaps one day I will actually choose Mutt, but right now I’m not considering Mutt. If you want to tell me to use Mutt, then please go read buzzfeed.com and leave me alone.

2. My choice

mu4e. Well I do know that I didn’t go for the two or three most obvious choices (RMail, Gnus, VM) and I’d like to explain a bit why. Part of my choice is based on the requirements listed above of course, but in one case it is also based on complexity. You see, I believe to be accurate if I write that based on my requirements, Gnus does entirely satisfy all of them. I have started to investigate Gnus, but the documentation makes it seem… very complex, and I’m not far from thinking that it looks more complex than it really is. However, I went for an easier option as a first attempt. RMail would also satisfy almost all of them (using the MailUtils package available on any Unix-like system), however it seems that RMail only uses the mbox (and earlier Babyl) mailbox format, so that is a no-go for me, unfortunately. VM and other tools, nmh, mh-e do not seem to be developed or even maintained anymore. I might be wrong. Any pointer on this approeciated.

mu4e (mu for Emacs) was my choice over a rather similar solution called Wanderlust, but it seems Wanderlust runs into many bugs and has a slow development now. Plus, the author of mu and mu4e makes a good case of his own project vs. Wanderlust.

3. The experience

The installation and setup of mu4e is actually rather straightforward. The “mu” package (mu4e is part of mu) is readily available directly from ArchLinux, and you mostly need to install a few other programs such as offlineimap to have your imap acess configured. That’s a small python script to configure, and we are talking about entering details such as the server URL, your username and password. Nothing (too) fancy. After this you need to read a rather clear set of documentation directly available on the author’s website -there are very useful blogs on the topic as well- but it amounts to pretty much the same kind of settings anyone would need to add or configure when configuring a graphical email client. Once this is done, both offlineimap and mu -not mu4e- need to run for the first time. Offlineimap fetches your mail via imap and mu itself indexes your email you just downloaded. Note that these two are executed outside of Emacs, in your regular terminal, although you may of course run your terminal inside, er… Emacs, by using the Term or the EShell modes. After that, you need to open Emacs, and call in mu4e within emacs (it won’t run anywhere else).

At this stage, it is perhaps important to state that you need a working knowledge of how to use Emacs. By this I mean that you must have the ability to know how to switch from one mode to another, the main keyboard shortcuts, etc. Let me stress however that I am not a developer and that I have learned this rather comfortably in just a few months. Learning how to use Emacs (and this would apply to Vim as well and many other software) really amounts to read the tutorial(s) and then practice what the tutorial explains. Now when you have done that and feel confident to install and use mu4e, you will find what I’ve described above rather easy and straightforward. Otherwise you may perhaps think that I’m talking gibberish. The first thing mu4e shows is a default buffer with shortcuts to the inbox, bookmarks and other commands. Any of these is accessible through keyboard shortcuts. Refresh your mail for instance is done by typing a capital “U” (Shift + u) accessing your inbox first means to jump (j) to your inbox (i). You are then presented with a rather standard list of your email. Shortcuts (arrows) will select an email, press Enter and the content of the email are displayed by default in the lower region of your buffer, but you could have them displayed in a completely separate buffer. Sending email is also straightforward (Shift + c). You only need to write the email address next to the coloured line with a “To:” and the same goes for “Subject:” and “cc:”. A small separation line points to the area where you can compose your actual email.mu4e

My first reaction was that it was not that much of a radical departure from the traditional graphical clients. Of course there is nothing fancy, no “tabbed interface”, etc. but nothing that does not make any sense either. I have not spent enough time playing with the various options available. For instance I am not sure I can ever get the vertical three pane view that I have on every one of my email clients. I might, but I just need to check what needs to be configured. I didn’t choose a large inbox, so obviously things went fast, although it is not like they felt faster than Claws Mail for instance. There is of course a bit of disorientation due to the new interface. Questions such as “where are my menus?” take a whole new meaning here. Yet so far, I’m not ready to make the jump.

I need to sort out whether specific options are available (such as the vertical three pane view) but there are others. Also, I probably need to give Gnus a more serious look. But more to the point, I feel that switching to any kind of email management (for the lack of a better term) in Emacs only makes sense if I’m enthralled by the capabilities of tools I could be using; so far I like what I see but I hadn’t had an epiphany yet; and more importantly, using Emacs to handle mail really makes sense if I’m using Emacs all day long for pretty much everything aside perhaps browsing. This, however, is clearly not the case for me. For instance I use LibreOffice for most of my documents handling, even if I take notes with Emacs. I create graphical presentations, and must often handle complex Word documents. I hear Emacs handle tables very well, but so far I’m not dabbling in this area, and LibreOffice Calc serves more than my needs. I use Claws, browse the web with a combination of browsers (Firefox, Chromium, Gnome Web, Midoru and even ReKonq) and I do all of these things outside of Emacs. I estimate my workload to be happening somewhere around 20% on Emacs in one way or another. This is not enough for me to move… yet. However I am impressed, I’m pleased by what I’ve experienced, and I learned a lot more on Emacs than I thought. That was worth all the trip but as far as email goes, I’ll stick to my Claws…

Leave a Reply

%d bloggers like this: