2009-09-19

Earlier, I spoke of the wonderful Wanderlust e-mail client. After years of
using mutt, I am a quite happy Wanderlust-user now. Now, it's few months
since my conversion, time to discuss some of the customizations I did. Not all
the defaults are so well-chosen (in my opinion), but fortunately, the package
is very configurable.

If you are interested in Wanderlust, this entry might save you some time in
figuring out such customizations and some other tricks. If you haven't
done so before, I'd recommend you to read the older entry first. Also, the
entry about BBDB may be useful.

Before going into the customizations, let me first answer a question I got
asked a couple of times: why I am using Wanderlust and not, say, VM, gnus,
Mew or even mutt or some other client?

To start with the last part, an emacs-based client fits in very well with my
workflow, which is (duh) revolves around emacs. Doing my email there as well
makes a lot of sense - a little return-on-investment for the time spent taming
emacs and its bag of tricks.

The reason I particularly like Wanderlust, is that it works very well with
mail stored in maildirs - as you may know, maildir is a one-file-per-message
way of storing your mail on disk. That's great for backing up things, and
sync'ing different machines.

Unlike VM and gnus, Wanderlust keeps the mail in the maildir as-is, and
does not use a separate spoolfile – thus, all changes are reflected in the
maildir itself, making it possible to use different clients (ie., use mutt
when needed). Even more important, the wonderful tool offlineimap does
two-way synchronization with IMAP-servers, and downloads everything into a
maildir. So, I can download all the mail on my laptop machine, go offline and
work on the messages (delete, move, reply etc.) during a flight, and when I'm
back online, I can synchronize things. All this 'cloud'-stuff is nice, but I
like to have my mails on my side of the intertubes.

Ok, now let's take a look at some of the customizations and tricks. All of
these are little snippets to add to your ~/.wl-file.

Forwarded mails should use 'Fwd:', not 'Forward:'

Reply-to-all should not be the default

By default, Wanderlust uses Reply-to-All; that is usually not what we (well,
I) want. The code below makes Reply-to-Sender the default, with
Reply-to-All behind C-u; ie. A or a will reply to sender, C-u A
and C-u a reply to all.

(Note, the uppercase A is for replying with quoting the original message,
while the lowercase version starts the reply with an empty message)

After this, you quite easily handle spam in the 'Summary' with some
keybindings:

k C : check whether spamassassin considers this message 'spam'

k m : mark message(s) as spam (move to spam folder)

k n : learn this message is 'ham'

k s : learn this message is 'spam'

Note, there are some hooks for other spamfiltering solutions as well.

How to easily refile messages

I receive all my messages in only two mailboxes: one for personal mail, and
one for mailing lists. If, after reading, I want to keep the message, I'll
refile it to some other folder (after all, it's good to empty your mailboxes
quite often. Wanderlust makes this refiling quite easy; the first way is to do
it semi-automatic, i.e., let Wanderlust 'guess' the folder for you, based on
the contents of the message. Then, when pressing 'o' in the summary, it will
suggest this folder, and you can refile (move) the message. You can set up
this 'guessing' something like this:

Explicit refiling

Semi-automatic refiling works fairly well, but you might also want to have
some explicit shortcuts to move messages to specific folders. For example, to
move message from your inbox to your Project X-folder, or your Project Y-folder.

Check outgoing mail

It's not uncommon to forget to add a subject or an attachment when you send a
mail (or at least, when I send a mail…). However, using
wl-mail-send-pre-hook we can let Wanderlust warn us when something like that
happens.

It it still not clear to my why use WL over Gnus ? I'm using Gnus with Maildirs since 2 years using fetchmail for fetching mails and postfix (in smarthost mode) for sending mails via a SMTP relay. I don't use any mbox mailspool file. It works awesome, I use mutt and kmail also with the same mailboxen. Although read/unread/flags on mails aren't preserved.

@tom: some of the mirrors work, and you can get the latest (beta) version:http://www.jpl.org/elips/wl/snapshots/; you'll also need the dependencies (apel, flim and semi). Carbon-emacs might even ship Wanderlust. Good luck!

@Wah Java: well, it never worked well for me -- and you basically answer your own question in the last sentence :-)

Compared to mutt and wanderlust, Gnus maildir implementation is notoriously bad. Nnmaildir creates two files for each mail --- which IMO is quite wasteful. And, as you mentioned, it uses unconventional marks.

Gnus works best if you're willing to take the plunge and use its modified mh (nnml) or mbox (nnfolder) formats. For synchronized/easily shared formats, it is subpar IMO.

@Tracy Reed: there is in fact some effort underway to update the website, and there are snapshots available of fairly recent date. Wanderlust could use some fresh energy (and hopefully my postings are part of that), but the project is alive.

Nice post I must try wanderlust. I use offlineimap to synchronize my local maildirs with several remote imap accounts. As mailreader I use mutt, I try gnus via local imapserver (dovecot) but that config not satisfy me. I like mutt, slrn and newsbeuter but when I start they via ansi-term from emacs dont work very well (my subjective opinion). I search native emacs replacements for that applications and I think wanderlust maybe this one for mutt.

I've been using Wanderlust for quite some time now, and it is great. But there are two things I could never figure out, perhaps you have:

- When you send an email, it shows up as unread mail in the Sent folder; similarly, when I delete an email from the Inbox, it shows up as unread in Trash. But a message I just wrote/deleted should not be set to unread.

- I could never figure out attachments. If you send a large file, wanderlust (or whatever it hands it over to) cuts it into many messages and sends it in pieces. Standard mailreaders at the other end, however, don't merge these messages. Well, perhaps this is not wanderlust's fault, but I have to drop into Evolution to send attachments.

I tried to use GNUS. But it failed miserably when handling large Maildirs (consider 37000 mails for the linux-kernel mailing list). Does Wanderlust perform any better? If yes, I would want to move to it.