Integrate Bayesian classifier for Spam Filtering along with SpamAssassin

Started by DNA, March 09, 2020, 05:09:12 AM

Previous topic - Next topic

DNA

In order for SpamAssassin to be accurate, you must train it on your specific mail patterns. SpamAssassin has a Bayesian classifier that can be used to help refine the classification of spam mail. The sa-learn interface allows you to train SpamAssassin to recognize good mail and junk mail. You need to train with both spam and ham mails. One type of mail alone will not have any effect.

To filter for spam:

  • Save spam into a new mail folder called Spam
  • Save non-spam (ham) into a new folder called Ham. You may also put messages that were marked as spam by mistake into this folder.
If you're having trouble with Bayes, see BayesFaq for help.
https://cwiki.apache.org/confluence/display/SPAMASSASSIN/BayesFaq

Spamassassin Default configuration:
# vi /etc/mail/spamassassin/local.cf
required_hits 5
report_safe 0
#required_score 5
rewrite_header Subject [SPAM]


Explanation:
Required_hits 5 is for small mail serv. You can increase it more if you need
Report_safe is on 0 here, but you can change to 1 or 2 ( see spamassassin guides )
Rewrite_header we call it ***SPAM*** here, you can call it as you want
Required_score can set form 0 -> 5 depends what you need

Configure the Bayesian classifier in Spamassassin:
# vi /etc/mail/spamassassin/local.cf
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
bayes_path /etc/mail/spamassassin/bayes/
bayes_file_mode 0660

bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status
include /usr/share/spamassassin/



Restart & Update Spamassassin rules
# systemctl restart spamassassin
# sa-update

Check Spamassassin status
# systemctl status spamassassin



If you get the above error that marked in snapshot , just disable the line (bayes_path) in /etc/mail/spamassassin/local.cf , It will use the default bayes_path .
#bayes_path /etc/mail/spamassassin/bayes/
Just create new bayes databases
# sa-learn --sync
# sa-learn -p /etc/mail/spamassassin/local.conf --sync


Copy the existing bayes databases to Spamassassin Bayes directory:
# cp /root/.spamassassin/bayes_* /etc/mail/spamassassin/bayes/

Details with Troubleshooting :
How to Integrate Bayesian classifier in Spamassassin on CentOS Web Panel?