A rant about mail clients

A while ago I described why migrated my agendas from iCal to orgmode. To sum it up, my main motivation was to gain more freedom in managing my information: where iCal imposes a rigid format for events and insists on storing them in its own database, inaccessible to other programs, orgmode lets me mix agenda information with whatever else I like in plain text files. Today’s story is a similar one, but without the happy end. I am as much fed up with mail clients as I was with iCal, and for much the same reasons, but I haven’t yet found anything I could migrate to.

From an information processing point of view, an e-mail message is not very different from lots of other pieces of data. It’s a sequence of bytes respecting a specific format (defined by a handful of standards) to allow its unambiguous interpretation by various programs in the processing chain. An e-mail message can perfectly well be stored in a file and in fact most e-mail clients permit saving a message to a file. Unfortunately, the number of e-mail clients able to open and display correctly such a file is already much smaller. But when it comes to collections of messages, information processing freedom ends completely.

Pretty much every mail client’s point of view is that all of a user’s mail is stored in some database, and that it (the client) is free to handle this database in whatever way it likes. The user’s only access to the messages is the mail client. The one and only. The only exception is server-based mail databases handled via the IMAP protocol, where multiple clients can work with a common database. If you don’t use IMAP, you have no control over how and where your mail is stored, who has access to it, etc.

What I’d like to do is manage mail just like I manage other files. A mailbox should just be a directory containing messages, one per file. Mailboxes could be stored anywhere in the file system. Mailboxes could be shared through the file system, and backed up via the file system. They could be grouped with whatever other information in whatever way that suits me. I would double-click on a message to view it, or double-click on a mailbox directory to view a summary, sorted in the way I like it. Or I would use command-line tools to work on a message or a mailbox. I’d pick the best tool for each job, just like I do when working with any other kind of file.

Why all that isn’t possible remains a mystery to me. The technology has been around for decades. The good old Maildir format would be just fine for storing mailboxes anywhere in the file system, as would the even more venerable mbox format. But even mail clients that use mbox or Maildir internally insist that all such mailboxes must reside in a single master directory. Moreover, they won’t let me open a mailbox from outside, I have to run the mail client and work through its hierarchical presentation of mailboxes to get to my destination.

Before I get inundated by comments pointing out that mail client X has feature Y from the list above: Yes, I know, there are small exceptions here and there. But unless I have the complete freedom to put my mail where I want it, the isolated feature won’t do me much good. If someone knows of a mail client that has all the features I am asking for, plus the features we all expect from a modern mail client, then please do leave a comment!

Explore posts in the same categories: Uncategorized

11 Comments on “A rant about mail clients”

  1. tiziano Says:

    I am not sure it does everything you want, but I think mutt comes pretty close to what you describe. There are several ways to have multiple directory hierarchies for storing emails for mutt, but why don’t you simply link all relevant directories within the “master” directory? If you do it this way, you don’t even have to edit a configuration file to add a new directory hierarchy or to remove one.
    all other features are present in mutt: it support maildir format, you can open *any* maildir directory, even one that mutt does not know about, just with “mutt -f directory”. I am not sure you can view a single message within a maildir, I don’t have one to test right now, but you can surely do much better opening it with vim: it will come syntax highlighted and everything.

    well, give mutt a try ;)

    • khinsen Says:

      The problem I have with mutt is that I receive too many HTML mails these days to be able to work with a terminal-based client. It’s not that I like HTML mails, but everyone around me does, unfortunately.

      As for linking everything to a master directory, that’s still a kludge. I want to be able to plug a backup disk into my computer, navigate to the folder of some past project, and open a mail folder stored in there. I could probably write some shell script that creates a symbolic link to the master directory and calls mutt, which is indeed the big advantage of command-line tools.

      • Tiziano Says:

        I agree that HTML mail makes a terminal based client a bit more cumbersome. I configured mutt to show me a text-only dump of the HTML generated with w3m or elinks. It works well 90% of the time. For the rest 10% I instruct mutt to open the mail in my web browser.

        About the linking, you can navigate to a folder and open a mail folder stored in it with mutt, even if it is not linked from the “master” directory. The link to the master is only needed if you want mutt to “know” about all your folders. If you don’t care, just open the folder and that’s it.

        By the way, if you are an emacs user, you may want to look at vm: if you have emacs open all the time anyway it’s quite convenient. You can open arbitrary mail folders with it. I stopped using it when UTF mail became kind of standard, but maybe UTF support has been added in the meanwhile…

  2. khinsen Says:

    OK, so mutt seems to be the one and only mail client that lets me store my mail where I want… why doesn’t someone write a GUI for it then? ;-)

    I do use emacs all day, and I looked at most of the emacs mail clients at some time. Like you, I dropped VM because of the UTF problems and flaky IMAP support, and I haven’t looked into it ever since. The one I liked best is Wanderlust, but it can’t open arbitrary mailboxes either. And of course HTML mail is a bit of a pain in all emacs clients.

    BTW, my current most-used mail client is Mulberry, which has the best support I found for working with multiple identities attached to a single IMAP account. That’s another aspect badly handled by most mail clients.

    • khinsen Says:

      I did end up looking at VM again, and it has improved significantly. IMAP support is being improved right now. I haven’t noticed any problems with UTF mails yet. I’ll continue test-using VM for a while, it looks promising!

  3. Sasha Says:

    I happily use evolution, mutt and some bash scripts on a maildir tree that is synced over several machines using unison. Good stuff.

  4. nil Says:

    After years of Thunderbird, I went back to mutt, and am sticking to it. I don’t really any feature besides reading my mail quickly and efficiently (I even stopped using spam filters and topic filters, it was not so useful). My mail is stored in maildir, sync’d with offlineimap, with hooks to keep the full history in git. HTML mail is not a problem. I can ask mutt to open it in a browser.

    But I still didn’t find how to ask mutt to open a single mail file.

  5. Marduk Says:

    I use mu4e + offlineimap in emacs. mu4e is actually a GUI to the mu indexer, which allows me to do complex searches on my emails stored in Maildirs. Press aV to view an email in your browser.

    The Mailpile browser-based, offline email client looks promising.

    • I have repeatedly tried solutions based on local mail storage, but always abandoned them because of instabilities in offlineimap. I haven’t tried for a while, perhaps the situation has improved, but it wasn’t reliable enough for daily use when I wrote the post three years ago.

  6. Freek Barwegen Says:

    Konrad, on this topic, did you make any progress? I’m looking for the same functionality in all aspects as you: “What I’d like to do is manage mail just like I manage other files”. Any progress? Is Mbsync an option?

    • My current setup is msbsync for synchronizing my two IMAP servers with a local Maildir store, notmuch as a mail search engine, and Emacs with its notmuch support for reading and writing. This isn’t yet the full freedom I was hoping for, as all messages must still be kept in a single directory hierarchy, but at least the messages are stored in files on my computer and I can work on them with whatever tools I like. Those tools include in particular a set of Python scripts (using the Python interface to notmuch) that handle common management tasks, written exactly for my needs.

      After a few years of using this setup, I find it quite satisfactory. I do almost all my information management in Emacs+org mode these days, and therefore it doesn’t matter much where my messages are stored, as long as I can easily link to them from org-mode files.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: