Wanderlust — Email Client
— work in progress —
Wanderlust (WL) is an email client for Emacs. I stumbled upon it in my never ending search for an email client that doesn't suck. Wanderlust does suck, God it does! — but I'm using it for a few days and I was tricked to think that it sucks less than others.
The English documentation is very scarce. There seems to be a lot more information in Japanese, but to me it's useless. The only complete (so far) initialization file I could find is this wl-init.el; there's a brief page about Wanderlust at EmacsWiki. There is also the info manual, which seems to be a bit more up-to-date than the official online documentation.
Because it's so poorly documented, I decided to share my experience with it, so here's my little contribution in this howto. I hope it will be useful to someone.
Who is it for?
WL, like other Emacs-based email clients, is not for everyone. Before you get into it, I think you should ask yourself two questions:
- Are you an Emacs user?
- Do you think that all email clients suck?
If you answer “yes” to exactly one of these questions, you might want to give WL a chance. “Yes” to both questions means that WL is just what you're looking for. If your answer is “no” to both questions, save yourself some time and stop reading now. ;-)
This howto assumes you have some basic knowledge about Emacs.
First, the good parts:
IMAP support is blazing fast. I can't compare it to any other client. Really. It's amazing.
Though I'm interested in IMAP only, it supports a wide range of other protocols (POP, mbox, news, whatever).
Supports “virtual folders” (I have to figure out how to configure this yet).
The UI looks good enough. It can display threads, nested folders, Face/X-Face headers, has decent keybindings, etc.
Quite easy and fast to search for messages in one folder; I'm not yet sure how easy it is to search in multiple folders, so far I haven't need that.
You write mails in Emacs (to me this weights 80% of all features).
Supports scoring, filters, etc. For now I haven't need them.
You get all the power of Lisp to customize it. I'm not a Lisp hacker, yet I found it reasonably easy to make it Do What I Want. (If only the docs would be better...!)
Can be integrated with Bogofilter, SpamAssassin, and probably whatever you want for spam filtering. I'm not anymore interested in this kind of features because I realized that it's a lot better to do the filtering on the server-side—and that's what I'm going to configure. It already works quite well, I just have to configure WL to be able to feed SPAM and HAM to a remote SpamAssassin, which seems to be quite easy via SSH.
Works well with other popular Emacs packages. I'm currently using it with BBDB (for keeping my address book), Flyspell (spell checking as you type), Mailcrypt (digital signatures and encryption, here's my public key btw).
Now the downsides:
Because Elisp is not a multithreaded language, it kind of freezes while checking for new mail. This can be bad if you're using the same Emacs instance for other purposes, like, writing code. :-) Not the case for me—I don't mind starting a new Emacs instance especially for WL; until one week ago I was using Thunderbird, which needs tons of RAM. Emacs is a lot lighter.
If you're not an Emacs user, this could be really difficult to configure/understand/get used to. I think you should have really answered “yes” to that question if you got so far. :-)
It can't by default display HTML-formatted email. It should be possible to configure it with W3-el but I haven't figure out this part yet. If you receive a really important email as HTML, you can easily extract the HTML part and feed it to a browser.
Configuration is by default stored in various files in your $HOME directory, which makes it quite difficult to backup. Here are some files:
- ~/.wl — the main configuration file (Lisp)
- ~/.folders — this file lists the email folders that you're subscribed to
- ~/.addresses — keeps the address book (but wait, if you're using BBDB there are other files)
- ~/.elmo/passwd — stores encrypted IMAP passwords; happily you don't need to maintain that yourself.