Evolution and IMAP

Evolution is great

I love Evolution. I’ve used it for years for POP3 access and it has easily handled huge amounts of email and allowed me to quickly find information. I can not use a command-line email client to read my email. I am not like that. Years ago when I first started using Linux, I had a Windows partition (actually a removable disk) just so I could boot into that to check my email with Outlook. That was tedious. Then Evolution let me use Linux all day every day. It was familiar but far more stable and faster and less confusing than Outlook.

Evolution is still great for POP3 and getting better all the time, and possibly for some other protocols that I haven’t used.

Evolution with IMAP is not so great

But about a month ago I switched Evolution from POP3 to IMAP, because I got tired of not having access to old emails when away from my main PC, for instance when I use my laptop or when I use the webmail interface. This has mostly given me what I wanted, though dreamhost’s squirrelmail times out when searching my old messages, which are archived to a separate folder after a few days for performance reasons. But it means that I don’t stumble over not having the information in an email that someone sent me yesterday, and then realise the next day that I forgot to check it while at home.

However, it’s very slow, so slow that it rarely finishes whatever it’s doing before I shut my computer down. The status bar is always showing a couple of “Working oxb1208ad8” or similar messages. I think it’s doing more things with hexidecimal names, but it only shows two at a time. Every time I click on a folder it seems to give itself lots more work, and is determined to finish whatever it started doing for the last folder, even though I’ve lost patience with that already and just hope it can forget and maybe be quicker with another folder instead.

I’m not 100% convinced that this is caused by Evolution or instead by IMAP in general, or maybe by a problem with my IMAP server, or with IMAP servers in general.

Maybe (I have no idea) IMAP is a fundamentally slow or high-latency protocol, but it seems theoretically possible for Evolution to not be slow about showing me what’s already on my local disk. If it wants to check for new stuff on the server then that should happen in the background. I’m not saying it’s easy to implement, but it should be possible.

This whole downloading local copies thing is confusing in Evolution:

  • The account setup (Edit/Preferences/Mail Accounts/Edit/Receiving Options) has an “Automatically synchronize remote mail locally” checkbox.
  • Right-clicking on a folder in the Sidebar anch choosing Properties, allows me to check “Copy folder content locally for offline operation”. Isn’t this the same thing? And is it recursive? Am I really gaining anything by tediously setting this for the 40 folders in my folder for mailing lists?
  • You can force a download of local copies by choosing File/Work Offline, but a) Didn’t I just specify in the first two ways that it should always do that, and b) I can’t check new emai while it’s doing this.

I just built Evolution 2.8 from source (I usually use 2.6 on Ubuntu Dapper) to see whether it’s faster, but I don’t notice any significant difference.

I suspect that some of the slowdown is caused by me having 40 filter rules to sort my emails into different folders for each mailing list. Unlike with POP3, it has to tell the server to move these instead of just moving them on the local disk. I guess server-based rules would be more efficient but I have no way to specify such rules with my hosted email server, and Evolution certainly doesn’t offer any way to do this. Turning off email filters or junk filtering (in the account setup) doesn’t make it noticeably faster when switching folders, but I didn’t try this for a few hours, and Evolution does seem to get slower with use.

By the way, why can’t Evolution just arrange all my mailing list emails automatically without me having to create folders and filters for each one?

It also seems slightly faster when not using encrypted IMAP (with TLS or SSL), but not fast enough, and a) I like encryption, and b) It was fast enough when using encrypted POP3.

I have tried Thunderbird. It seems slightly faster, but I haven’t tried recreating my 40 filter rules to test whether it’s faster when doing that. It does at least show a pulsing progress bar when it has to download an email, instead of showing me a blank email for a minute or so. It has the same UI problems when saying what should be downloaded locally – there’s no way to say “download everything and keep downloading everything, so you can be fast”. One great thing about IMAP is that you can easily try other email clients.

I’m not complaining about the hard-working developers. Evolution does a lot of great stuff and I’m not ready to move away from it, particularly because Evolution integrates more with my desktop than Thunderbird is ever likely to. I’m sure they’ll fix whatever they can in time – I recognise that getting an email application right is not easy. I just wanted to get my thoughts written down. I am not jumping on the bandwagon.

Update: I should give Evolution 2.8 more of a chance over the next few days. I guess it does feel a bit snappier.

26 thoughts on “Evolution and IMAP

  1. It’s rather unfair to compare POP3 and IMAP like this:

    “It also seems slightly faster when not using encrypted IMAP (with TLS or SSL), but not fast enough, and a) I like encryption, and b) It was fast enough when using encrypted POP3.”

    they’re doing utterly different things. POP is an exceedingly simple protocol for taking a bunch of data from one place and either copying or moving it to another. It doesn’t do a hell of a lot more than scp. That’s not what IMAP is doing at all; it’s a protocol where you interact with a bunch of data that stays on the remote server all the time.

    If all you do with IMAP is use it like POP, it works just as fast. Use fetchmail to copy your mail from an IMAP server and it’ll do it pretty much as fast as it does from a POP server.

    This is what I do with my mail. I pull all my mail – from various accounts I’ve built up over the years – with fetchmail onto a machine on my local network (via procmail to sort and spam filter it, removing any need to do spam filtering in the client). That machine runs courier-imap and apache/squirrelmail – courier only accessible from the internal network. I can use Evolution on any machine on my local network to read all my mail from all my accounts, and it’s very fast. When I’m away I can access it via Squirrelmail.

    Personally I think the problems people see with Evo and IMAP are to do with either badly configured servers or something to do with network latency, because with my setup (where I only use Evo’s IMAP capabilities to talk to an IMAP server right on my local network), it works extremely well, even for huge mail volumes (I have several folders with over 100,000 emails).

  2. “I suspect that some of the slowdown is caused by me having 40 filter rules to sort my emails into different folders for each mailing list.”

    Woah. Any particular reason you’re not using a proper MTA [+ MDA] for this and just reading your mail locally from Evolution? That’d allow you to universally filter out mail with whatever, pick random clients you want to read the maildir, etc. I’m not sure why Evolution and other mail clients try and even attempt this mammoth task, and for all the time you must take configuring mail rules for each client it’d be worth it just to learn how to do it (in my opinion) “properly”.

    It’s not as difficult [1] as it looks and totally worth it.

    [1] http://wiki.sourcemage.org/HOWTO-Setup_mutt%2Bprocmail%2Bfetchmail%2Bgnupg%2Bmsmtp

  3. 2 tips.
    1) procmail filters on the server are a way better technical solution than client side filtering (though more of a pain to implement)
    2) Use the red X button in the evo toolbar “Cancel current mail operation” when you get bored of waiting for it.

  4. > Woah. Any particular reason you’re not using a proper MTA [+ MDA] for this and just reading your mail locally from Evolution?

    Because I wish to remain a normal user, and experience what a normal user experiences.

  5. I have the same mixed feelings about Evolution — I like the UI, but libcamel is very slow for IMAP (and also for Exchange).

    I have found that Balsa’s IMAP access is fast, so I don’t think there’s anything fundamentally slow about IMAP. Unfortunately, Balsa crashes a lot.

    Sylpheed (with or without claws) IMAP is no faster than Evolution.

    I’ve begun poking around libcamel’s IMAP code … but it’s a large enough task, and I have little enough time for it, that I probably won’t actually get very far. Maybe the recent Evo-IMAP posts on p.g.o will prompt some improvement …? Here’s hoping.

  6. Evolution’s IMAP implementation is very broken. Other than speed, evolution fails to synchronize the state of read messages with the server and it doesn’t allow the user to override the deleted folder namespace which causes your deleted messages to stay in your inbox on the server. Overall the experience is horrible and it’s not IMAP’s fault because thunderbird works like a charm for the same account.

  7. Nadeem: “Other than speed, evolution fails to synchronize the state of read messages with the server and it doesn’t allow the user to override the deleted folder namespace which causes your deleted messages to stay in your inbox on the server.”

    I don’t agree with this. I’ve never had a problem with read / unread status going from Evo to Squirrelmail, and I find messages are properly deleted so long as I remember to use Evo’s ’empty trash’ option.

    murray: “Because I wish to remain a normal user, and experience what a normal user experiences.”

    This seems a fairly odd definition of ‘normal user’. I don’t know anyone who uses a dedicated mail client to access a _remote_ IMAP server who isn’t a geek. Just about every ‘normal’ home user I know uses webmail, with a sprinkling of people using POP. There are probably quite a few ‘normal’ office users who access an IMAP server with a dedicated client (though honestly, Exchange is extremely popular in this space), but that server will usually be hosted on the local network, not out on the internet.

  8. Adam, I have two evolution instances running right now, one on my workstation and one on my laptop and I can easily reproduce the problems that I’ve mentioned. My workstation shows 13 unread messages while my laptop shows 39. My server-side trash folder is empty so I am not able to view deleted messages and undelete or search them. I am runing evolution 2.6.1 and my mail server is running cyrus imap.

  9. Ich wollte nur kurz anmerken, dass ich die gleiche frustrierende Erfahrung gemacht habe und das es sicher nicht speziell an deinem IMAP-Account liegt. Als ich Thunderbird verwendet habe lief IMAP sehr schnell und ohne Probleme. Besonders wichtig für mich: .INBOX in den Namenraum-Einsellungen einzutragen um “Sent” und “Drafts” aus dem Inbox-Ordner rauszubekommen und es auf einem gleichen Ebene wie den Posteingang zu haben. Es gibt anscheind mehere Methoden IMAP zu implementieren, eine davon Drafs/Send in Inbox – was echt hässlich ist. Nicht nur dieses Problem konnte man mit Thunderbird wunderbar lösen; sogar die Ordnernamen liessen sich einwandfrei umbennen. All das war mit Evolution nicht möglich, das ganze war auf ganzer Linie einfach nicht zu gebrauchen. Jammerschade! Ich liebe Evolution, aber für IMAP ist es nicht zu gebrauchen. Mich wundert ehrlich gesagt, warum das anscheind niemand wirklich stört.

  10. Personally, I like to use offlineimap+ssh tunnel to synchronise my remote IMAP accounts with a local maildir copy, and just use evolution to read the local maildir. Offlineimap can do nice stuff like opening 3 connection threads at once to sync faster.

  11. Murray,

    I think you did something wrong when trying Evo 2.8, like forgetting to really kill evolution-data-server (with evolution –force-shutdown). I’m saying that because I’ve always found Evo’s IMAP completely unusable except when on the same LAN than the server (!), but with 2.8 I’ve changed my mind. It now works rather well even on not-so-fast links.

  12. AdamW: “I don’t know anyone who uses a dedicated mail client to access a _remote_ IMAP server who isn’t a geek.”

    Ahem! Over here!! I’m not a geek, but I do use a mail client (Thunderbird) to access a remote IMAP server … in my case, MailSnare. I think quite a few customers of companies like MailSnare, Fastmail, and so on, do it this way. For me, it just seems easier than learning the ins & outs of MTAs and MDAs; plus, I don’t have a box to dedicate as a mail server, and I frequently dual-boot and reinstall this or that flavor of Linux and (once or twice) *BSD. It’s awfully convenient to have my mail always accessible from the same place, no matter where I am physically, nor where my computer is booted into. Mail hosting is pretty cheap … I think it’s worth the $20/year for the simplicity of doing it that way.

    I keep trying Evolution and keep going back to Thunderbird. It’s much faster for me, and less resource intensive. It’s also not loaded with features I don’t need. I think I understand what Evolution is trying to be — more or less, a replacement for Outlook — but how many home users really need Outlook? Even back in the day when I used Windows, I never used Outlook at home — just OE, then Mozilla Mail & News. I wish Gnome wasn’t so wedded to Evolution in terms of integration. There are neat things like Deskbar integration that would be nice to have with Thunderbird, Balsa, or other MUAs. The only thing I think KDE is doing better than Gnome is giving its users an integrated email app (Kmail) that is powerful and focussed on email — focussed enough to be great for home use. Evolution is more of a kitchen sink. I certainly don’t mean to disparage the work of Evo developers, who are doing a great job. But there’s a reason Microsoft has Outlook *and* OE as integrated options. Gnome just has Evolution; it’s too heavy for many of us, however well it works.

    BTW, Murray, I’m not sure I understand what you mean by “there’s no way to say ‘download everything and keep downloading everything, so you can be fast’.” Just subscribe to all the folders you want to read in offline mode, and Thunderbird will download everything and keep downloading everything. Account Settings => [account name] => Offline & Disk Space => Select folders for offline use… and check all of them. (Also, check the box by “When I create new folders, make them available for offline use”.) Thereafter, Thunderbird will download the complete message for all the messages in each folder as soon as you access that folder.

  13. Michael:

    “I’m not a geek”

    “MailSnare”

    “I frequently dual-boot and reinstall this or that flavor of Linux and (once or twice) *BSD”

    know thyself. =)

  14. Cyrus imap has great performance via the internet to a cable modem hosted mailbox with around 15,000 messages in it, beagle search in evolution 2.8 is very quick, my server doesn’t end up with a rediculous load average when I’m searching and I’m happy.

    Cyrus really does rock ;)

    Oh and it has its own filter system for filtering messages into imap folders called sieve. Which is very fast, really you should be using either procmail or sieve filters on the server if you’re using more than one client, especially if that client is over the web.

  15. Heh…does merely being interested in *nix make one a geek? If that were the case, then there’s really no point to distros/OS’es like Ubuntu and DesktopBSD, since they aim at non-techie users, even while supplying all the tools geeks like to use.

    Certainly, people who use the services of companies like MailSnare and Fastmail are not necessarily geeks. I use it because I want a persistant vanity email domain, rather than being dependant upon my ISP or something that ends in gmail.com or yahoo.com. Check out the support forums of these companies sometime … you’ll see that most customers are about as sophisticated as the typical Ubuntu newbie. A *real* geek would do it himself and put the $20 savings toward a new toy.

    I’m the satisfied owner of Mark Sobell’s “A Practical Guide to Linux Commands, Editors, and Shell Programming.” I find the “commands” and “editors” parts very useful (in so much as the latter deals with Vim — haven’t cracked Emacs, and probably won’t). The “shell programming” part is beyond me. I think that makes me maybe a “power user,” but not a “geek.” :-)

  16. I had some troubles with older versions of Evolution using IMAP. But I think they were before 2.4.. I have switched to Thunderbird because marking spam is solved much better in my opinion: You do not have to open a spam or a trojan mail to mark it as unwanted and spam recoginition is working much better in my Thunderbird. I have read that there is a switch which whom you can enable nice filtering with Evolution, but on the one hand I heard this after I switched and on the other hand I think Evolution should do this out of the box. see also: http://vinci.wordpress.com/2006/08/03/switching-from-evolution-to-thunderbird/

  17. Evolution performs IMAP over SSL acceptably well for me. Maybe my host is doing things right (http://www.panix.com). Maybe it’s my small number of messages (3000). I’m definitely annoyed by the “not storing locally” problem, read/unread problem, and trash problem mentioned earlier. It stored my mail locally in 2.2.3, but not in 2.6.3. After reading the comments here about 2.8, I’m anxious for it to come to Fedora Core.

    I use evolution for its integration of calendar, contacts, and email (IMAP over SSL required for me). One day, I hope to correctly sync my Pocket PC.

    Disclosure: total geek

  18. Thunderbird is _really_ slow at searching through messages. text of messages. I have about 12000 messages in my box an evolution can search them very quickly.

    Also, when it crashes you loose the message you were working on. Evolution will restore the one you were typing.

    I switched from Evolution to Thunderbird and then later back to Evolution.

  19. Hi, I agree with Nadeem and Murray,

    I have recently switched from WinXP / Thurderbird IMAP to Linux FC5 and Evolution 2.6

    I have largeish mailboxes and a few filters but Evo consistently runs like a pig and sometimes just grinds to a halt. When I fire up TB it runs like a dream. The problems are mainly when accessing mailboxes. I’m really disappointed because I liked Evo’s integrated calendar / contacts / mail thing … I wish I knew how to make Evo run faster with IMAP!

    Mike

  20. Hi to all,
    just a few experiences I made with imap and evolution. I tried to setup my imap account with evolution. The receiving mail goes via imap and sending over smtp. The smtp settings seem to work correctly. But receiving emails via imap does not work with evolution. Nothing gets displayed. Evolution aborts with a timeout. With mozilla mail and the equal account settings this is absolutely no problem. All emails are displayed correctly. But not with evolution. The evolution screen stays empty. So what is the problem with evolution and imap???
    cheeers,

    role

  21. You might try a different IMAP server. I was using Courier IMAP for a long while and then heard about dovecot (www.dovecot.org). I switched over and was shocked by the speed difference — Dovecot made IMAP in Evolution (and Thunderbird) much more responsive. Dovecot, on the whole, is a great product and I haven’t had any problems with it.

  22. I have Red Hat Enterprise Linux 4 Workstation with Evolution, and my Mailsnare IMAP account used to be fast, but now it is dog slow even though I have moved most of my emails to the local machine as a test. I’m going to try a Runmail IMAP account (free for 30-days).

Leave a Reply

Your email address will not be published. Required fields are marked *