Mail Readers Still Stink

Five years ago, I started work on OfflineIMAP. I couldn’t find any mail reader that offered good IMAP support and a good feature set. Rather than write my own mail reader, I simply wrote OfflineIMAP and used it with mutt. OfflineIMAP does a bi-directional sync between an IMAP server and local mailboxes. This lets you work offline, and also speeds up reading since each new message doesn’t have to be downloaded from the network on the spot.

I kept hoping that OfflineIMAP would become obsolete soon, as mail readers got better. Back in 2004, two years after writing OfflineIMAP, I looked at mail readers. In 2005, after some more frustrations with mail readers, I wrote a comparison. I wound up sticking with mutt and OfflineIMAP each time.

I’ve gone out looking at mail readers again. Here’s what I’ve found.

KMail
Overall a nice reader, KMail has almost every feature and setting I want. It has “disconnected IMAP” folders, which download every new message in folders to the local disk as part of the routine mail checking. It then caches local changes and syncs them to the remote on the next mail check. This boosts interactive performance and permits offline operation — very similar to OfflineIMAP. KMail has keyboard shortcuts for most things, and keyboard shortcuts can be added or changed for most other things as well.

KMail also integrates with the KDE calendar and addressbook, which I already use. That’s nice, too.

I have two big gripes about it though.

Back in 2004, I noticed that KMail crashes a lot. By 2005, it was worse. Sadly, KMail still has a tendency to crash. I’ve seen an average of 1-2 crashes per day, due to SIGFPE, SIGSEGV, and I think also SIGILL. This doesn’t make me happy at all. Especially to see that it’s no better on that in three years. Just don’t try emptying trash while your mailbox is being synced, for one thing….

Gripe #2 is that there is absolutely no way to select a different alternative in a multipart message without using the mouse. Simply no way using the keyboard. It’s also cumbersome, though possible, to view attachments using the keyboard — you have to press Enter to open the message in its own window, then tab to the attachment.

KMail also sometimes works a bit sluggishly — for instance, when you delete a message, you first see strikethrough through it, then it disappears. It doesn’t feel very “snappy”.

Evolution
Evolution has a decent core. It is easy to get set up and has an extensive set of keyboard shortcuts. It does IMAP downloading and syncing like Kmail, and it does it by default. It doesn’t offer all that much flexibility in configuration, but probably enough.

Here’s my gripe. There is no way for it to show a total message count next to each folder in the folder list. It will show an unread message count, but not a total message count. You have to click on each folder individually to see a total message count. I can’t figure out why this is missing from Evolution. It’s one of the main benefits to switching from mutt, and so I didn’t bother looking at Evolution any more past there.

Thunderbird / Icedove
By default, it isn’t all that capable of a mail reader. There aren’t that many configuration options, and the keyboard shortcuts — while existing for most things — are cumbersome.

The Nostalgy extension helps with the keyboard shortcuts significantly. You still can’t change some of them (Ctrl-L for forward, anyone) — at least not without an extremely cumbersome process involving editing text files.

Thunderbird can do automatic IMAP downloading and syncing like KMail and Evolution, but for some inexplicible reason, only for your INBOX. In fact, Thunderbird won’t even check for mail in folders other than INBOX unless you set an undocumented configuration option. It seems to assume that nobody does server-side mail filtering.

If you want IMAP downloading for offline use or performance, you have to manually invoke a download operation. There is a Sync on Arrival extension, but it isn’t compatible with Thunderbird 2.0. From reading comments online, there are a lot of people frustrated about that.

So Thunderbird strikes out as well.

mutt + OfflineIMAP
The good thing about this combination is performace. mutt is extremely fast, and OfflineIMAP works faster than anything else for IMAP downloading. mutt is also far more configurable than anything else.

There are some annoyances about mutt.

#1 on that list is the lack of a folder list. There is just no way to see a list of folders along with new or total message counts. You can press c, Enter to go to the next folder with unread mail, which is something, but not enough. There have been numerous abortive projects over the years to address this, but for whatever reason, mutt itself doesn’t have this yet. Probably the most promising current project is this one.

#2 is HTML mail. I don’t mind the lack of default support for HTML mail. That’s to be expected. There are some things that do bug me involving viewing HTML mail. First off, sometimes people attach graphics to messages that also have an HTML component. Viewing these graphics doesn’t represent a security risk, but mutt doesn’t make them available to a browser for viewing — you have to manually save them if you want to view them. Also, you normally don’t want to load graphics from the Internet for HTML mail. The only way to accomplish that with mutt is to set your browser to lynx or something; just using Firefox to view a HTML component will load all of that.

#3 is handling of embedded URLs. xterms can pass mouse clicks, and it would be nice if mutt made URLs clickable like other mail readers do.

#4 is the IMAP support. No support for caching, fragile, etc. That’s why I use OfflineIMAP. That works, but it’s a hassle.

#5 is printing. Printouts from mutt just spew the text of the message at the printer. No page numbers, formatting, nothing. muttprint makes that situation a bit better, but the integration is flaky and weird.

Conclusions
I’m not sure what I’ll do. None of these are really where I want them to be, though mutt and KMail are probably the closest.

I tried few of mail readers starting with pine, next to Kmail, mutt, Evolution, but none of them satisfied me as much as Claws-mail. It is much more stable than Evolution and can handle without out any problem my old mail archive :-)

I’m also a very happy user of wanderlust (after having used mutt for years). What prompted me to switch was folder list, highly customizable, integrated in emacs (which I used from mutt anyway), and loads, loads of other features, plugins, etc.

I’d also point it that it solves most issues the original author mentioned in mutt: #1 (folder list), #2 (HTML email, wl can use w3m, although mutt can be configured to use an external program too), #3 (click can open url in a browser), #4 (pretty good imap support), #5 (acceptable printing, in mutt try muttprint).

I don’t find wl too sluggish on large mailbox, unless you use Maildir/mbox’s directly. Don’t. Use some local IMAP server to access it (I use dovecot).

wanderlust is really wonderful, as long as you like (or don’t hate) emacs. I haven’t found anything better yet, so I highly recommend trying it.

Interesting. I once tried mutt with imap to localhost and found it much slower than direct mailbox/maildir. I don’t recall if I used dovecot or uw-imapd; and also perhaps I didn’t give the imap server the chance to generate its caches.

Currently I’m very happy with offlineimap + mutt (or ssh + mutt). I also use Sylpheed on occasion, when I want to open attached word documents in OpenOffice, and don’t want to wait 3 minutes for offlineimap to sync my imap mailbox to get the new email.

wrt sidebars for mutt, I’m quite happy with buffy, packaged in Debian. It shows all sort of statistics for mail folders, allows you to sort the list by various criteria and it runs mutt on the folder when double clicking on it.

Does KMail work now with OfflineIMAP, or do your comments refer to the »disconnected IMAP« mode only? I seem to remember that KMail had problems with OfflineIMAP’s syncing to Maildirs, so you had to use a local IMAP server instead. (This setup is what I use here, but I wouldn’t mind getting rid of the local IMAP server.)

I have the opposite problem – no IMAP service. I really don’t like POP3, as it ties my mail to a single machine. But my ISP oesn’t offer IMAP, and I’ve yet to find a free (or reasonably priced) IMAP provider. Any suggestions? (If I had IMAP, then I could start worrying about which was the best IMAP mail client :-))

I have tried urlview, but the problem is that it loses context. In one of these annoying messages from this or that place I bought something from once, I want to pick out the unsubscribe link. Difficult to do in a pageful of 3-line links.

Mulberry is going open source. They need all the support they can get. Please. Help them. There is nothing else like it. I got it for free when I was in school and after that I couldn’t use anything else. I actually paid for it, even for use on linux. It’s the only commercial software I’ve ever purchased for personal use on an open source platform.

There is an SVN repo up now but thus far releases have only been for win32 and mac.