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.) > 1. What all does 'Check incoming messages for junk' control? Everything? > Just the junk plugin (spamassassin/bogofilter)? Does checking or > unchecking it affect whether custom headers are scanned? > - Potential UI fix: the options for everything that is pre-empted by > disabling junk checking should be disabled when the checkbox is cleared I think the option should be removed entirely and be made per-account, but that may be a bit of a project. At the moment, only IMAP accounts have their own junk filtering options, and I believe those options are secondary to this master switch. Disabling the "Check incoming messages for junk" turns off everything: custom header checks, address book lookups, and junk filtering software. > 2. What option is ignored if a match for custom junk headers is found? > - The code suggests that the address book and and junk filter plugin > logic are both ignored if custom headers are found Correct: headers first, then address book, then filtering software. I think it's meant to be in order of fastest to slowest. As soon as any of those tests determine the message to be junk, processing stops. > 3. What happens if there is no junk plugin (bogofilter/spamassassin) > installed? UI makes it looks like the custom headers will work, and > address book checking will work. However, the code seems to disagree: > looking at the junk_test function in camel-filter-search.c, it looks > like everything is just bypassed if there is no junk filter installed. Yeah you're right. Probably even my handiwork. The header and address book checks should run regardless. That's a valid bug. > In my mail setup, I run SpamAssassin on the server (as a Postfix > milter). I want Evolution to check the spam headers set by the server, > but not to mess with running bogofilter or spamassassin or anything like > that locally. Further, since my server's SpamAssassin doesn't know > anything about my address book, I want the address book lookup to > override the custom header check. The processing order I mentioned above would have to be changed. I don't have any strong opinions about that since I just use Bogofilter. > The UI makes it ambiguous as to whether this is possible. Looking > through the code, to the extent that I understand it so far, it looks > like it is not. If I have no junk filter plugin, then Evolution will > not do any checking, including for custom headers. If I have one, then > I'm double-scanning my mail and slowing down Evolution. And the address > book check doesn't interact with the header check. It would be clearer if the UI read more like a checklist: [ ] First check this... [ ] Then check this... [ ] Then check this... > 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 works Sounds great to me! Polishing up those options and unbreaking whatever's broken would be much appreciated. Matthew Barnes _______________________________________________ evolution-hackers mailing list [email protected] To change your list options or unsubscribe, visit ... https://mail.gnome.org/mailman/listinfo/evolution-hackers
