Flagging false negatives for spamassassin


#1

How do we flag junk mail that was delivered through the filters so that SpamAssassin can learn to flag them as junk in the future? At my previous host there was a cumbersome process of manually editing the SA config file to set up the options to allow training. Then you add two folders to your mailbox (one for junk mail that was missed, one for valid email). You copy the appropriate emails to those folders, then run a cgi script (that you manually write and put up on your domain) which runs SA with -train on both those folders. It would be really nice if DreamHost had something automatic, do they?


#2

The current solution doesn’t have anything that smart. Many people are wishing for it, so “eventually” some solution may show up.

For now, you can use the Junk Mail Filter as it is, with your own black- and whitelisting, and your own threshold levels. My own threshold levels are extremely aggressive (“zero”) but that only works if you check the quarantine frequently.

You can also install your very own SA instead of using the Junk Mail Filter. I haven’t yet figured out a way to install it so that it works for more than a single user’s mailbox - therefore the Junk Mail Filter wins, in my book. If there ever is a documentation for how to set up custom SA for an entire domain, I’ll be among the first to try it out.

[color=#CC0000]Get $50 off[/color] with promo code “LESS”! See here what else you get!


#3

I have SA set up for a whole domain (twice). Install it into the domain home, the one with the web sites, using the personal install instructions, and have the users in the domain use the full path to the domain’s SA in their procmailrc files.

This works quite well for me.


#4

Yeah, I’ve done it for the whole domain too. You just have to make all the mail accounts regular users and give them .procmailrc & .postfix.forward files. They can just use the path to where ever you installed SA.

If you want to easily train SA on false negatives, make a “LearnAsSpam” folder as a direct child of your inbox, and put this in your crontab (all one line):

X Y * * * for file in ls ~/Maildir/.LearnAsSpam/cur; do ~/bin/sa-learn --spam ~/Maildir/.LearnAsSpam/cur/$file >/dev/null && rm -f ~/Maildir/.LearnAsSpam/cur/$file; done

This assumes sa-learn is in ~/bin/ and you should change X to some number between 0 and 59, and Y to some number between 1 and 6.

Training on false positives is probably not that important in the whole scheme of things.