KMail’s brain-damaged filtering system

OK, just quickly ranting about this :

KMail doesn’t have a spam filter, it’s supposed to integrate existing filters through its filtering system (there’s even an “antispam wizard” which automagically creates the right filtering rules). All these filters add a header to the message, therefore modifying it. Apply that to an IMAP inbox where the non-spam messages are kept in the inbox, and you get kmail re-uploading every single non-spam message after it’s been piped through the filter. And I can’t find a way to do it otherwise. Even worse, you have to create a “non-spam” folder to put the messages in, otherwise kmail refilters all messages every time you enter the inbox.

Now on top of that, there seems to be a funny bug that causes kmail to get stuck on a message, endlessly refiltering it, and re-uploading it to the “filtered” folder so by the time you cancel the filtering job (and, incidently, get kmail stuck in a state where it won’t display the content of any of your imap folders, forcing you to restart it) you find yourself with multiple copies of the same message in your “filtered” folder. Great.

This is already annoying enough – I’ve just (painfully, as usual) upgraded to Kubuntu 7.10, using KDE 3.5.8, and there’s no improvement of the situation – but since the bug happens only on large messages, I figured I could just add a filter rule on the message’s size. Oh, great, there’s one. Except it tests the message’s size in, wait for it… bytes. And you can’t change the unit, like to something a tad more useful like kb. Seriously, when was the last time you ever felt like you needed to filter your messages according to their size with a byte-level precision ? And good luck for Joe User who wants to filter between “large” and “normal” messages (pretty much what I want to do). Typically I want to let messages over 1Mb pass through. So I should enter a six digit number in that filter rule ? Now that’s convenient, counting zeroes. Love it.

But wait, it gets better. There are no less that 5 operators for that “size in bytes” rule. 5. “less that”, and “greater than”, of course, but also… “less than or equal”, “greater than or equal”, and of course… “equal”.

This is akin to sorting freight containers with a scale precise down to the gram. Not only some moronic coder actually thought it would be useful to have such a filter criteria available, this went undetected and has remained so for years.

Next time, a rant on the kubuntu upgrade, with a config script crashing silently causing me to do this at the command line level, and ending up with a partially functionning mouse (which used to work fine – now half of the buttons aren’t recognized, so no tilt wheel).