As a long time KDE user, I have several favorite applications and many reasons to run that desktop environment. From KWin and its ability to configure every aspect of window management, with specific application settings, to the excellent file managers Dolphin and Konqueror. The list includes KMail, an application that, for a long time, I have perceived as the best way of managing email sanely. However, changes in the KDE 4.x branch and a small elusive bug have made me move away from it.
tl;dr The way KMail handles local mailboxes, a technical problem with its mail filters and a new IMAP account at FastMail made me move away from KMail and into Thunderbird, while configuring everything so every message lands in my FastMail account. What follows is the long story and my analysis of what made KMail great.
The way it used to be
KMail had almost every feature you wanted from an e-mail client. For example, it had threaded view, specific settings for some folders, the ability to identify mail from mailing lists and allow special settings for those cases, quick search filtering, spam filtering integration, etc. You name, KMail probably had it.
On top of that was the way KMail allowed you to set up your mail accounts. It allowed you to configure, separately, incoming accounts, outgoing accounts and mail identities.
For example, I had an account with my ISP, an old account with Yahoo!, a couple of accounts in GMail and the email coming from the different daemons in my own box. In both my Yahoo! account (using SpamGuard) and my GMail accounts (using suffixes), sometimes I wanted to send email with a variety of "From" addresses, different from the canonical one for the account. This was a piece of cake with KMail and not many mail clients were so flexible. I could configure:
The POP accounts as incoming mail.
My local mailbox as incoming mail.
The SMTP servers for the remote accounts.
The local sendmail program in my box.
A variety of identities for my box and the remote accounts ("From" headers).
You could then associate each identity with an outgoing account. Either an SMTP server or a sendmail program, flexibly. You could always choose the outgoing account while composing a message.
So far, so good. In an attempt to simplify my configuration, I used getmail to retrieve email from every external POP account automatically with cron and get it delivered to my local mbox.
This was an ideal setup, as this kind of configuration can be easily handled from KMail as well as mutt or any other mail program in the world that easily allows asymmetry between mail identities and external accounts. Also, every incoming message was received at a single point (my local mailbox) and almost every message could be sent using a single transport (putmail).
The way it is now
Not long ago, I opened my mail account at FastMail and I’m using it to store this blog and handle all my mail. It’s a fantastic provider and I can’t stop recommending it if you don’t want to let Google own all your data.
I decided to manage FastMail using IMAP, which kind of cut mutt out of the loop of my mail system, as not everything was coming from a local mailbox and mutt’s IMAP support is not that great.
But I had also moved to KDE4 and a few things were already wrong. KMail had been changed and local mailboxes, while still configured as incoming mail, were displayed along other mail storage facilities in the folder tree. In other words, local mailboxes were not a magic invisible thing KMail checked and brought email from. They were visible things that could contain mail that was supposed to be stored there.
This is a minor aesthetic detail and a minor behavior change that could be solved my creating a mail filter that could move all email received in the local mailbox to KMail’s long term storage folders.
But filters don’t work and don’t move any mail message for me. I’m not alone, as this bug report and specific comment show. There seems to be technical problems with KMail filters.
In addition, when I move mail manually from the local mailbox I sometimes get a very annoying and obscure error message that, at least in my case, does not prevent the operation from completing with success. It reads:
NO Only resources can modify remote identifiers
I don’t even know what that phrase is supposed to mean or why it appears in an error pop-up while the operation completes successfully. These problems have sadly persisted across several KDE 4.x versions.
My new system
I have moved everything to FastMail. I configured POP links from my account preferences and mail from other accounts is retrieved by FastMail periodically and automatically. In my box, local mail is stored in the local mailbox and also forwarded to FastMail with an appropriate mail forwarding script that gets called thanks to $HOME/.forward.
Once I had everything set up, I wondered why I was still using KMail at all. I tried Thunderbird and surprisingly it already has a bit of those "multiple identities" magic built into it (a lesson learned from other mail clients, no doubt). Thunderbird, while GTK, is not tied to a specific desktop environment.
I’m typing all this from Vim running in XTerm, with Firefox and Thunderbird open, and a few monitoring gadgets that could be replaced by GKrellM and I’m obviously wondering why I’m running KDE at all.