Inspired by a blog post from Adrian Sutton and the comments beneath it I am now documenting how I train Spamassassin from within Apple Mail.
The setup is fairly straight forward but implies that you at least have a working Spamassassin instance running somewhere and know your way around UNIX a little bit. So I’m just going to explain the rough details to get you going.

  1. Switch on the bayes database for SA. On my Debian box this is done via putting the line use_bayes 1 in the file /etc/spamassassin/ After that restart SA (eg. /etc/init.d/spamassassin restart)
  2. Let SA put all your Junk Messages in the folder “Junk” in your IMAP Account
  3. Let Apple Mail put all your Junk Messages in the folger “Junk” in your IMAP Account
  4. Install a little Cronjob to have SA learn Spam from your Junk folder and Ham (=not Spam) from your Inbox. The following is my script:
    echo "----learn spam----"
    sa-learn --spam /var/opt/vmail/*
    echo "----learn ham----"
    sa-learn --ham /var/opt/vmail/*

    Note: those are just 4 lines, the blog just wrapps the two ‘sa-learn’ lines because of limited horizontal space. Of course you have to change the path to the real location of your ‘Junk’ folder.
  5. Last thing to do is installing the cronjob. Mine looks like this:
    0 */4 * * * /path_to_your/script > /dev/null 2>&1

Actually my setup involves learning from 4 different user accounts, who all use Apple Mail just to get more Ham- & Spam-volume faster.
I hope this is helpfull to you. It works perfectly on my server for over a month now.