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