Thunderbird: An Open Source Email Client

When I switched away from Mail.app late last year, what I switched to was Thunderbird. Overall, I’ve been very happy with it. I love the fact that I can use Thunderbird from both my Mac laptop and my Ubuntu desktop. I wish I could share address books between the two, but I’ll probably eventually resolve this by setting up a central LDAP server for myself.

Thunderbird comes with a pretty basic feature set, but allows additions via downloaded extensions. (Thanks to Beck for the comment on my previous post about adding keyboard short cuts to Thunderbird with Nostalgy. I really like it!) I suspect that many of the more advanced email handling features I want could be developed as Thunderbird extensions. Unfortunately, it seems that most of the really cool extension development efforts are going to Firefox extensions instead.

My biggest irritation with Thunderbird is in message caching and offline access. It does have a “work offline” feature, and I like the fact that when I explicitly tell it to go offline, it offers to download all my email first. Offline access to messages works fine for my IMAP inboxes, but it doesn’t cache my IMAP folders (even if I’ve explicitly selected them for offline use in my settings), so when I click on messages in folders all I get is a polite notice that the message wasn’t downloaded. This makes it difficult to clean out my Parrot mailing list folder while I’m on the train, for example, something I used to do all the time in Mail.app.

If I don’t explicitly set offline status when I go off the network, Thunderbird gives me “Failed to connect” dialog boxes every time I click on a message or folder, or try to send a message, and sometimes just gives me random connection error dialogs when I’m not doing anything. I get around it by setting offline status, but it’s unnecessarily disruptive. Mail.app handles a lost network connection much more gracefully, only warning me when I try to retrieve new mail. I also wish Thunderbird would queue up messages to send later anytime the connection fails, instead of only when I’ve set offline status.

I also have problems with Thunderbird’s searching capabilities. Searching by To or From address or message subject always works beautifully. Searching message bodies (the “Entire Message” feature) is unreliable. I can copy a string out of a message, search for that string and get no results, then come back 10 minutes later and do the same search and get 50 results. It’s also slow. I can’t complain too much about that, since I’m searching an IMAP inbox with ~3,000 messages, but Mail.app manages a much faster search over the same IMAP inbox for the same string. I suspect the explanation lies in Thunderbird’s caching problems, as sometimes it gives me a timeout error from my IMAP server in the middle of a 2+ minute search. It really shouldn’t be doing searches on the IMAP server but on the local cached copies.

Thunderbird is also getting quite slow in general lately, as my mail folders grow. I suspect this is the caching problem again. Deleting a message from an IMAP inbox can take 30 seconds to a minute in Thunderbird. Deleting a message from the same IMAP inbox in Mail.app takes less than a second. I can probably work around this (and still have access from multiple different clients) by setting up an archive IMAP server (that can be slow and carry a large number of messages), while keeping my primary IMAP mail accounts light and empty. This is why I was trying out the Pair account, and also why I want the “automatically archive after 30 days” feature. (Thunderbird currently only offers “automatically delete after 30 days”.) But, I really shouldn’t have to work around the limitations of my email client, it should work around my limitations as a human.

My annoyances with Thunderbird are relatively minor. But they’re a low level of constant irritation, like water dripping from a leaky faucet. Lately I’ve started looking for other options. At the same time, with a tiny bit of usability polish and a few more advanced extensions, I could imagine being a loyal Thunderbird user for many years.

tags:
  • http://www.helge.at helge

    make sure to regularily compress your folders, to keep thunderbird from becoming too slow.

  • Erik Hetzner

    For offline use of other folders, you need to go to the Properties of the account, select “Offline & disk space”, then click on “Select folders for offline use”.

    Thunderbird by default wants to move messages to a Trash folder, which is tedious & slow. Change this setting, again in the account properties, select “Server settings”, and change “When I delete a message” to “Mark it as deleted”. You should get a huge gain in delete speed.

  • http://arc.nucapt.northwestern.edu atom probe

    Thunderbird supports server-side IMAP search. If searches are “slow,” it could be that your provider deserves some blame.

    I really think this behavior of having the server do all the work (storing, searching) is right & I’d want to be able to turn local cacheing off it was a feature.

  • http://arc.nucapt.northwestern.edu atom probe

    Also: You can create filters which process messages based on their age. You can use this to tell TB to move all messages older than 30 days into an archive folder.

  • http://radar.oreilly.com/allison Allison Randal

    For offline use of other folders, you need to go to the Properties of the account, select “Offline & disk space”, then click on “Select folders for offline use”.

    Yup, that’s what I did. No effect.

    Thunderbird by default wants to move messages to a Trash folder, which is tedious & slow.

    That’s a reasonable workaround. I’m more interested in why it’s tedious & slow, and how they could make it faster.

  • http://radar.oreilly.com/allison Allison Randal

    make sure to regularily compress your folders, to keep thunderbird from becoming too slow.

    I have occasionally used the “Compact Folders” option. It made no difference in speed. If it is significant somehow, maybe Thunderbird should automatically run it as a background process during low usage (like when I wander off to lunch, or leave my laptop running all night to download a file).

  • http://radar.oreilly.com/allison Allison Randal

    Thunderbird supports server-side IMAP search. If searches are “slow,” it could be that your provider deserves some blame.

    My “provider”, in this case, is a Red Hat box in the next room.

    I really think this behavior of having the server do all the work (storing, searching) is right & I’d want to be able to turn local cacheing off it was a feature.

    I completely agree that you should be able to turn caching off and still do searches. But when I turn caching on, the client should take full advantage of it.

    You can create filters which process messages based on their age.

    Now that’s a useful suggestion. Thanks!

  • http://jerakeen.org Tom Insam

    Addressbook synching has been a thorn in my side for _ages_ – I can keep almost every other aspect of my computer on a remote server and use it locally, but not address books.

    I can very much recommend Plaxo, however – they have a thunderbird extension that syncs its address book to their server, and something that talks to Sync Services, so the mac address book will also be synchronised. Has the side effect that the local mac and thunderbird addressbooks will also be in sync.

  • http://alastairc.ac/ AlastairC

    I use IMAP email with Thunderbird on Mac and Windows, and the Windows version is much faster.

  • Heiner

    You really should give Mulberry (http://www.mulberrymail.com/) a try. I had exactly the same Problems with my large Imap Mailboxes and Mulberry solved them all. At least it is Free Software since 20-Aug-2006. When useing Imap no other Software i tried was as Powerful. bye

  • Peter Niederlag

    I can’t confirm most of your problems. Offline works seemless here, as well as I don’t have any speed issues with an IMAP-account with > 150MB / 5000 messages.

    However there seem to be problems with searching like you have described.

  • http://blog.simon-cozens.org/ Simon Cozens

    One of the things that I’ve done, that I now find essential, is to arrange for my mail to be automatically archived by date; in mutt this is easy: “set mbox=+read-mail-date +'%Y%m'” in the config, and similarly for outbox. But I’m missing it in clients like Thunderbird and Mail.app. I guess this is just another demonstration of the flexibility of programmable applications.

  • David Bienvenu

    How many messages are in your trash folder? Some servers slow down copying messages into the trash when the trash folder gets large.

    If you want to really delete a message, you can use shift delete to delete a message w/o copying it to the trash.

  • Erik Hetzner

    [me:] For offline use of other folders, you need to go to the Properties of the account, select “Offline & disk space”, then click on “Select folders for offline use”.

    [Allison:] Yup, that’s what I did. No effect.

    Strange. It works for me as intended.

    [me:] Thunderbird by default wants to move messages to a Trash folder, which is tedious & slow.

    [Allison:] That’s a reasonable workaround. I’m more interested in why it’s tedious & slow, and how they could make it faster.

    Right. I don’t understand enough about imap to know why it’s slow to move stuff from folder to folder on the same server. But my basic understanding is that they created the \Deleted flag to solve this sort of problem, and that it is a bug in Thunderbird to not default to using that flag on imap folders. But there are very few email clients that begin with the goal of properly supporting imap.

    [helge:] make sure to regularily compress your folders, to keep thunderbird from becoming too slow.

    [Allison:] I have occasionally used the “Compact Folders” option. It made no difference in speed. If it is significant somehow, maybe Thunderbird should automatically run it as a background process during low usage (like when I wander off to lunch, or leave my laptop running all night to download a file).

    I couldn’t agree more. “compact folders” as an option is broken. Do it or don’t. If its worth the effort, its worth doing for everybody.

    [atom probe:] Thunderbird supports server-side IMAP search. If searches are “slow,” it could be that your provider deserves some blame.

    [Allison:] My “provider”, in this case, is a Red Hat box in the next room.

    atom probe is being disingenuous. If there exists an imap server that properly indexes messages so it can search them with sub second speed I’ve not heard of it.

  • David Bienvenu

    Of course, we do compact imap folders automatically, if there are over a certain number of deleted messages. If you’re not using the imap delete model, that is – if you choose the imap delete model, you’re responsible for compacting folders. The imap delete model is really more of a power user feature – that’s why it’s not the default.

    We can’t make moving a message to the trash fast, if it’s slow on the server – it’s a server-side command. What we could do is lie about how fast it is, and pretend that it has succeeded before it has.

  • http://www.mobileread.com Alexander

    Allison,

    My IMAP inbox has roughly 42’000 messages and it takes Thunderbird between 1-4 seconds for any full-text search. Notice: My mail server runs Cyrus IMAP, which keeps up-to-date full-text indices of every mailbox folder. Full-text searches are performed by the server (which is just a slow dedicated machine with 256Mb RAM) and all it needs it to use the index file to fetch the information.

    Not only that, I use Thunderbird’s multi-threaded capabilities to access my IMAP server (i.e. using multiple IMAP connections at once). Deleting, opening, moving e-mails – whatever I do – Thunderbird performs it instantaneous without any time lacks.

    So my advice: Switch your IMAP server software. I assume you are using some out-of-the-box solution like Courier. Thunderbird cannot perform any better than your underlying IMAP server does – unless you decide to take your mails offline.

  • Erik Hetzner

    Alexander, thanks for the tip. I didn’t know that Cyrus imap did full text indexing. This is a great feature and I thought they would advertise it more.

  • http://thrustlabs.com/blog Jason Doucette

    I second the “keep your trash folder as small as possible” – emptying the trash daily has cut my delete times from several seconds to sub-second.

  • http://bytebot.net/blog/ colin

    I suggest using an extension, called Sync on Arrival. The reason your IMAP folders aren’t cached is because you weren’t actively viewing said folder. I find this to be a bug, but Sync on Arrival fixes this rather nicely in the sense that it will take all mail offline for me.

    Deleting messages are re-synchronised back upon going online. However whats annoying is if you’ve marked a message as important, assuming you responded to it, and set the status back to nothing (by hitting 0), upon reconnecting, it doesn’t resync that.

    It has a ways to go, but its nice (cross-platform) software.

  • Ray Rugloski

    I’m a relatively new user of Thunderbird for IMAP — however, I have been using Thunderbird POP3 for years as my primary email client on my Mac computers.

    I am currently using Thunderbird v2b2, which is probably a factor in my experience. I’m particularly writing regarding the deletion discussion. With TB2 one has three options for what TB does when one deletes a message: (1) move to trash; (2) flag as deleted; (3) delete immediately.

    I began with option #1 because that has been what I have always done. As an aside, you can also set an option to have the trash emptied upon exiting, as well as having the Inbox expunged (compacted).

    As you have experienced, this option of “deleting” took forever — apparently because it has to move the message to the Trash folder. Why this should take forever is beyond me!

    Option #2, i.e., flagging the message for deletion, happens quickly — however, one must later clean the folder(s) of these messages. I found that by compacting, this clean-up took relatively little time. But it was definitely better than Option #1.

    I just switched to Option #3, i.e., delete immediately, yesterday. With this option the deletion happens IMMEDIATELY and FAST!

    As another aside, I found that these options also effect what happens when identifying a message as junk… agonizingly slow for Option #1, whereas when using Option #3 the message is immediately tagged as junk and deleted.

    I found your posting and the various replies to be very helpful. Thanks!

  • Shailendra

    I have 3 complains for TB:

    1) Bad IMAP4 support for slower net connection
    (and poor offline mode support)

    2) Lack of Maildir as storage.

    I started realizing this bad IMAP4 support problem, when I moved to a remote location from my office. So, connecting to IMAP4 server is slow. That is acceptable, but lot of time, I click a message, it would take time to display it, though I had seens message before, so it must be in cache. If switch between folders, that’s really slow; even if I am switching quickly. Why should it always contact imap4 server, on click of a folder.

    But what pinches me even more, is that its offline mode does not work properly. Though I do select option “download my mails” while going offline, lot of my messages my messages are still not readable in offline mode.

    Lack of MailDir support problem. MairDir is standard way of storing mails, and and the more efficient way. Storing all mails in a single mbox file, is a bad way. Its ok for light users, but for ones, having 10,000 mails, its really bad.
    Then, users have to always remember to do a compact folders from time to time.

  • http://www.scoreomatic.com Charles

    Allison, did you ever find a work around for your slow Thunderbird IMAP searches? I’ve been trying to migrate from Outlook Express (which worked well with IMAP and was very fast on searches) to Thunderbird. I love everything about TB, but with 20,000+ saved emails this is a stopper.

    Currently I’m looking at the new Windows Live email program — it looks OK and is as fast as OE. That’ll be may fall back if I can’t fix this issue.

  • http://radar.oreilly.com/allison Allison Randal

    Charles, with the latest versions of Thunderbird I haven’t had any trouble. Part of the problem was also old versions of IMAP on the servers. Since I posted, O’Reilly has upgraded to Zimbra, and I switched my personal and Perl-related mail over to aliencamel.com. Also, I set up an independent Zimbra server just for archives, which keeps my main IMAP accounts light and fast. (Importing from various backups, I’ve now accumulated an archive that goes back nearly 10 years.)

    Also keep an eye on Mozilla’s new energy poured into Thunderbird.

  • gks

    To ‘move’ a message to the trash TB does not do a refile but copies the message to the Trash folder then deletes it. This leads to all kinds of interesting fun if your copy times out, as TB will copy the messages over and over again, never deleting.

    We have seen users with 700,000 messages in their Trash folder, all TB duplicates.

    We run cyrus, and this hoses the account when the index file reaches a size than cannot be mmap’d.

    So apart from causing annoyingly slow message deletions on a day-to-day basis, this situation also helpfully creates server problems.

    gk

  • http://goknowing.com Caeruleus

    David Bienvenu: “We can’t make moving a message to the trash fast, if it’s slow on the server – it’s a server-side command. What we could do is lie about how fast it is, and pretend that it has succeeded before it has.”

    That is exactly what TB needs. As a functional user of TB, my biggest annoyance is that the program thinks that I care how long it takes for a message to be sent, or any other action for that matter.

    I also use Mail.app, and love the way it queues tasks in the background and lets me act immediately on its fraudulent projection of the future state of my IMAP account.

    Having an honest client that responds when the action is complete is all well and good if you are close to your server, and at home I have no trouble, but I spend most of the year traveling and connecting in any number of sub-par ways. Sitting in China at the moment, Mail.app is fast and snappy, downloading emails in the background and queuing operations so I don’t notice the speed of the internet. Thunderbird on the other hand is slow and unresponsive as it makes me wait until the server has completed an action before letting me move on.

    Thunderbird needs to start caching more and better, creating large cumbersome mbox files, it needs to start chewing up my bandwidth to make sure it has 10 times as many emails downloaded than I need and it needs to start lying through its teeth about its real inability to get things on the server done fast.

    I know that technical users/developers everywhere will cringe at this, but email is just a tool for communicating, and all the technical gadgetry in the world can’t replace need for the client to be send, receive and organise emails in the fastest time possible… or at least appear to.. White lies aren’t so bad.

  • demi9od

    Bravo Caeruleus I could not agree more. I am looking at Copernic now as an offline indexing search companion for Thunderbird. Being forced to work offline every time I want to search the entire contents of 17,000 messages just doesn’t seem like good computing.