Re: [Evolution-hackers] spam filtering



> >                 Spam filter [option menu - spam filters list] default:
> >                 1st filter
> 
> I'm not sure I understand this... what does "1st filter" mean? what
> other options would there be? etc.

It is definitely a *MUST* to have the SPAM filter adjustable in the
order of all filters processed.

Moving mails of mailing lists *before* evaluating the SPAM status of the
messages is necessary for speed reasons (high volume mailing lists).
Those messages probably don't need to be checked at all.

Without this feature of adjustable order, we would render Evolution
*unuseless* for folks subscribed to particular lists, like the
SpamAssassin mailing list and likely some admin lists.


To have this "do not check mails I moved" paradigm foolproof, we cannot
rely on the "stop processing" action. No deleted mail may ever be
checked by the SPAM filter at all.

Otherwise, this has high potential to poison the bayesian database and
not rate SPAMy words as high, as they should be.


> > Spam flag will be stored in X-Spam: header. Also for IMAP we may need
> > X-Evolution-Spam-Checked header.
> 
> for imap this is going to suck pretty hardcore. there's no way to append
> headers to an IMAP message, the only option then is to download the
> message, add the header(s), append the message back to the IMAP mailbox,
> and finally delete the original message (and expunge?).
> 
> this is gonna be a killer for performance.

Full ack -- this is even worse than a killer, thinking of large
attachments and *async* ADSL lines: Mails are downloaded fast to be
checked, but the upload takes ages...


Jeff: Although I cannot find it right now, I remember a feature to store
at least labels/flags on the IMAP server. Is this possible at all, or is
my memory playing tricks on me?

Wouldn't that be the solution, to have the status stored on the IMAP
server (we don't need detailed multilined reports, do we?)

...guenther


-- 
char *t="\10pse\0r\0dtu\0  ghno\x4e\xc8\x79\xf4\xab\x51\x8a\x10\xf4\xf4\xc4";
main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1:
(c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]