On Fri, 2009-02-27 at 04:27 -0800, Simone Morandini wrote: > I'm running SpamAssassin and I moderate some Majordomo mailing-lists on a > RHEL box. > After a message on the list is approved, it passes a double check, since the > header says something like: > > X-MailScanner-SpamCheck not spam, SpamAssassin (not cached, score=0.173, > required 4, HTML_80_90 0.15, HTML_MESSAGE 0.00, TO_ADDRESS_EQ_REAL > 0.03),
That's the first run? There is *no* BAYES_XX at all. That means Bayes is disabled. > spam, SpamAssassin (not cached, score=4.526, required 4, BAYES_50 4.50, > TO_ADDRESS_EQ_REAL 0.03) Second run? Now there's Bayes, however... BAYES_50 means UNDECIDED, neither particularly spammy looking nor hammy. That number after the rule hit -- did you assign a score of 4.5 to BAYES_50? Which, mind you, is well above your threshold! > The problem is that while the first check wirks fine, often the second check > detects some BAYES_XX and this, in turn, raise the overall score, sometimes > over the spam threshold. > > Do you know why this happens and how can I fix it? If I interpreted the output correctly, there are two issues to fix. (a) On the first run, you don't use Bayes. That also implies you're running with different settings for both scans. Do you really mean to? (b) Your custom configuration is severely borked, at least on the second run. That BAYES_50 score is entirely inappropriate. -- char *t="\10pse\0r\0dtu...@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; }}}