How to train the SpamAssassin Bayesian Classifier


How to train the SpamAssassin Bayesian Classifier

Detailed instructions on How to train the SpamAssassin Bayesian Classifier for a more effective email spam filter.

If you are finding that our recent tutorial on how to configure SpamAssassin on a cPanel server is not performing quite as well as could be expected, you might need to train the SpamAssassin Bayesian classifier.

The Bayesian filter can learn which emails are good and which are bad based upon your actions of moving them to a good folder (i.e. don't mark as spam), or bad folder (i.e. spam).  

BayesInSpamAssassinYou then configure a cron job to action certain commands once a day (it can be resource intensive, so set for off-peak hours), and it will run a command on your server to teach SpamAssassin whether to mark similar emails as spam or not. You can read more about the Sa-learn feature here.

Setting up the SA-Learn Bayesian Classifier System

  • Make sure you configure your mail clients to use IMAP.
  • Set up two folders in your mail client. One should be where you move spam emails to, such as "Spam" or "Junk". The other should be somewhere you move emails you want to mark as not spam such as "NotSpam".
  • Set up Cron jobs to make SpamAssassin process those emails as Spam or Not Spam as follows:
sa-learn -p ~/.spamassassin/user_prefs --spam ~/mail/{cur,new}

sa-learn -p ~/.spamassassin/user_prefs --ham ~/mail/{cur,new}

In these two examples "spam" is the location of emails that should be marked as spam, and "notspam" is the location of the emails that should not have been marked as spam.

  • "" should be replaced with your actual domain.
  • "Youremail" should be the first part of your email so if your email was jonathan[@], you would enter "jonathan".
  • If you wish to set this up for all emails on your account, you can replace "youremail" with an asterisk "*".

We highly recommend setting the cron jobs just once per day at off-peak times (i.e. six a.m. GMT) to avoid your web host being concerned about the system load resource usage.

  • Now you have configured the cron job you just need to move the emails to the relevant folders, noting that either webmail or IMAP must be used.
  • The final step is to generate the user_prefs file. This can be done by going into the SpamAssassin configuration settings — "Configure Apache SpamAssassin" (see this tutorial), enter the required score and click save. When you click save, the file will be generated automatically. You can check by logging into the file manager, navigating to the .spamassassin folder and making sure the file is there.
Related tags
60% Off with our top user-rated host: SiteGround
Need a fast, reliable hosting provider?
60% Off with our top user-rated host: SiteGround