IMAP, Thunderbird, and mail clients

For much of my career at Microsoft I’ve owned mail related features. I pretty much designed all the IMAP support in Entourage with Mike Fullerton and Steve Friesen and I’m pretty happy with how it works. IMAP itself is a complex protocol to implement properly (it’s been redone about 3 times now). Each server has its own little nuances, but generally, I love the concept because everything is stored on the server.  I can check my mail from multiple computers and use web mail w/o needing my own personal Exchange account.

However, there are some frustrating things about IMAP such as the delete model. With IMAP when you delete a message, it’s simply marked for deletion. It’s just a flag. In many clients the message remains, and the client must purge the mailbox to get rid of it (purging the mailbox removes all messages marked for deletion).

In Entourage, we offer a delete model (on by default) that behaves like a local mail client (or Exchange). Messages are copied to the deleted items folder, marked for deletion, and the mailbox is purged. However, this is a lot of work for a simple delete. There is no IMAP MOVE command, only COPY. To make matters worse, when you COPY a message on many IMAP servers, you don’t know what the message UID (Unique ID) is in that new folder. This makes it very difficult to support actions such as Undo, or any complex message tracking like we do in Entourage. A way around this is to search the destination mailbox for the message and get the UID. Luckily Exchange now returns the UID by supporting some newer IMAP extensions (UID Plus).

For me, the main features I want in an IMAP client are the following:

  • Support for IDLE (clients don’t need to poll for new mail, they are notified when a new message arrives)
  • Delete messages by copying the message to the deleted items folder, marking the message deleted, and purging the mailbox so that the deleted message goes away.
  • Store Sent mail & Drafts in the Server Sent Items & Drafts folder.
  • Use internet style attributions (Outlook places all replies on the top of the message, ever other mail client allows you to insert the reply either interspersed or at the bottom).
  • Support for Format-Flowed.

 

To understand what Internet style attributions are about, and why Format-Flowed is a nice feature take a look at this pic from a plain text message that I’ve replied to 3 times in Outlook (the same thing would happen in Entourage, OE and a few other products).

Below is a screen shot of Thunderbird and what Internet Style attributions look like, as well as Format Flowed support (where text is wrapped properly). As you grow and shrink the window, the quoted text is dynamically re-flowed as it would be in a web browser. This is much better than the 72 or so character line breaks that can get to be a mess and you end up with text like so:

IMAP Server

So, the mail features I want in an IMAP server are:

  • Server side rules (all mail is directed to folders on the server).
  • Server side spam filtering
  • Backups.
  • Web based interface

I’ve been looking for a decent Windows IMAP Client for the past few years with little success. Luckily I have a great IMAP Server provider, Fastmail. They provide all the features above, and run a decent IMAP server.  I’ve been using them for almost 2 years now.

IMAP Clients

Client wise here is a run down on what I’ve tried (yes, this is by no means scientific, unbiased etc; it’s just based on my experience as a user with these products):

Executive Summary: Thunderbird is an almost perfect IMAP client for Windows. If you use IMAP, this is the product for you.

  • Outlook : Needs improvment 
    1. Does not support the exchange like delete model I reference above
    2. Does not store sent mail on the IMAP server, but your Exchange server or local folder is you don’t have an exchange server
    3. Message must manually be purged for each folder
    4. No internet style attribution.
    5. No IDLE support (at least I don’t think so) Larry Osterman informed me that Outlook does support IDLE. Thanks Larry.
    6. Hard to find messages easily (and no server side IMAP search). Thankfully, MSN Search Toolbar and a number of products like X1, Lookout, etc fill this void very nicely. MSN Search being my favorite.
    7. One of the best Junk Mail Filters (same technology we use at Hotmail)
  • Windows Outlook Express : Needs improvement
    1. Fast as heck
    2. Purges message when you switch from folder to folder, which is better than outlook.
    3. No internet style attribution.
    4. No IDLE support (at least I don’t think so) Larry Osterman informed me that OE does support IDLE. Thanks Larry.
    5. Poor Offline support.
    6. Hard to find messages easily (and no server side IMAP search). Thankfully, MSN Search Toolbar supports this.
  • Windows Eudora : Not acceptable 
    1. Slow as molasses
    2. Frequently corrupts local IMAP folders
    3. Horrible interface
    4. Funky IMAP support.
  • Entourage : Excellent
    1. I helped to design most of the IMAP support, so there is nothing wrong with it (hehe). Well nothing that I’m unhappy about.
  • Thunderbird : Good
    1. Fast
    2. Supports the delete model I like
    3. Junk Mail filter
    4. Internet style attribution
    5. Supports IDLE (turns out at the time that I wrote this post, Thunderbird did not support IDLE. However, this was recently added)!
    6. Easy to find messages and supports server side IMAP search!!!!
    7. Doesn’t support getting unread counts for all folders w/o manually tweaking the application preferences.
    8. Supports mailbox quota

Update: I updated this post to reflect some corrections, edits and changes.