On Sat, 2013-11-23 at 13:10 -0500, Matthew Barnes wrote:
On Sat, 2013-11-23 at 10:48 -0600, Michael Ekstrand wrote:The particular working of the junk filtering pane (Preferences -> Mail Preferences -> Junk) is confusing, and the functionality it controls is (A) hard to understand and (B) arguably incorrect.Indeed. You're wading into a mess here. The junk filtering logic bounces between Camel and Evolution. Camel's filtering (both junk and otherwise) is highly dependent on Evolution and at some point I'd like to move it all to Evolution and get Camel out of the filtering business entirely. (The relevant Camel APIs badly need an overhaul as well, as they're ancient, error-handling is pretty much non- existent and they block like crazy.)
I have noticed. It has been interesting trying to figure out how junk control filtering works. It does seem, though, that the junk_test function really does implement the heart of the junk-filtering logic, which has been somewhat encouraging.
In particular, a few things I am immediately interested in making happen: 1. Making address book checks preempt spam header checks 2. (maybe) figuring out why the spam header check isn't doing anything 3. Making spam header & address book checks work without a spam filtering plugin 4. Making spam filtering UI disable things to show how it worksSounds great to me!
I've cooked up a pair of not-yet-tested patches that address (1) by moving the address book check before the header check and (3) by moving the 'do we have a junk filter?' test to right before the junk filter is actually moved. So far I'm thinking about in terms of minimal changes to make things work better. I'm open to considering more invasive changes, but I need to understand the Evolution/Camel interface better, and don't have a huge amount of free time right now. Enough to scratch a few itches, though :). Moving junk filtering to a per-account option long term does sound like a good move, but in the short term, I propose the following reworking of the junk config UI: * Keep 'Check incoming messages for junk' as the top, top-level check box. Have it enable/disable the following options, which are indented under it: * 'Skip junk detection if sender is in my address book' * 'Lookup in local address book only' * 'Check custom headers for junk flags' * 'Use external junk filter' <drop-down> (invisible if no plugin available, junk filter config UI is subordinate to this checkbox) * 'Delete junk messages' as top-level sibling of 'Check…', at the bottom of the pane * Get rid of the 'Option is ignored…' notice Thoughts? - Michael -- Michael Ekstrand — http://elehack.net/
Attachment:
signature.asc
Description: This is a digitally signed message part