Skip to content

Modern console mail clients?

I've recently started staging upgrades from Squeeze to Wheezy. One unpleasant surprise was that the mutt-patched package available to Debian doesn't contain the "sidebar-new-only" patch.

This means I need to maintain it myself again, which I'd rather avoid. Over time I've been slowly moving to standard Debian systems, trying to not carry too many local perversions around.

Unfortunately if you've kept all your mail since 1994 you have many mailboxes. having mutt-patched available at all, with the sidebar patch, is a great timesaver. But I don't want to see mailboxes I'm never going to touch; just mailboxes with new mail in them.

Also I find the idea of having to explicitly define mailboxes a pain. Just run inotify on ~/Maildir and discover the damn things yourself. Please computer, compute!

If you divide up "mail client" into distinct steps it doesn't seem so hard:

  • Show a list of folders: all, new-mail-containing only.
  • Viewing a list of mail-messages: all in folder, or folders.
  • Compose a new mail.
  • Reply to a mail.

Obviously there is more to it than that. Sending mail? exec( sendmail ). Filtering mail? procmail/sieve/etc. Editing mail? exec(vim).

I'm sure if I were to start a core of a program, suitable for myself, would be simple enough. Maybe with lua, maybe with javascript, but with a real language at the core.

Anyway I've thought this before, and working with quilt and some ropy patches has always seemed like the way to go. Maybe it still is, but I can dream.

(PS. Sup + Notmuch both crash on my archives. I do not wish to examine them further. Still some interesting ideas. It should be possible to say "maildirs are tags; view "~/Maildir/.livejournal.2003" and ~/Maildir/.livejournal.2007 at the same time. Why just a single directory in the "index-view? So 1994.)

Disjointed posts R Us.

Obquote: "How hard could it be?" -- Patrick.

Comments On This Entry

  1. [gravitar] Chris

    So… patch the Debian package to include the sidebar patch? (and, while you're at it, header and message caching if they're not already available--makes opening huge folders much faster!) Can't be too hard. It's just C code (well, ok, modulo the pain that is Linux packaging, but I digress). As for explicitly defining mailboxes, the $imap_check_subscribed variable will have mutt find your folders automatically. You seem to contradict yourself, though, in that you say you want mutt to detect folders but you also don't want to see old folders.

    I've been using mutt for about ten years or more, and it continues to do what I want. I just sometimes need to read the manual more closely, or think carefully about how to use the options that are available.

  2. [author] Steve Kemp

    I want mutt to detect all folders, yes. But usually my sidebar only shows folders that have new messages in them - so old folders aren't displayed. No contradiction.

    (I don't use IMAP. I just use ~/Maildir.)

  3. [gravitar] Anonymous

    Please do report an upstream bug on notmuch; it should obviously never crash reading a mail archive. The notmuch developers are highly responsive to bugs.

  4. [gravitar] dsr

    Detecting mailboxes at startup is easy; muttrc can execute shell snippets. From memory: mailboxes 'ls ~/Maildir/.inbox.*' or similar.

  5. [gravitar] Penny

    Enrico wrote a little app to do this by wrapping around mutt called buffy

    http://packages.debian.org/unstable/misc/buffy and I wrote a cli version using his libs called buffycli http://packages.debian.org/unstable/misc/buffycli

    They both just display folders in the maildir with counts of unread and new and flagged and then invoke mutt on a folder.

    Maybe that at least partially helps.

  6. [gravitar] Julien Danjou

    Gnus does all that and much more if you want. It's so much better than mutt!

  7. [gravitar] daniele

    Have you ever considered hacking Cone instead of mutt?
    http://www.courier-mta.org/cone/

    It has some nifty features, like remote configuration and address book (both are special folders of an IMAP server).