Default Spamassassin install from Ubuntu is a little bit misconfigured and is not suitable for remote Anti-Spam service. So I am writing up the config changes I had to make in order to make it work flawlessly.
1. Make a dedicated user for Spamassassin, default config runs Spamassassin as root, then the executable itself would complain about it and fall back to nobody.
sudo adduser spamd --disabled-login
2. Open /etc/default/spamassassin and edit the following line
OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir /home/spamd/ --listen=0.0.0.0 --allowed-ips=(your_server_ip)"
3. Edit /etc/spamassassin/local.cf and Add/Uncomment the following lines to suit your needs
rewrite_header Subject [SPAM]
use_bayes 1
bayes_path /var/spamassassin/bayes_db/bayes
bayes_file_mode 0775
bayes_auto_learn 1
bayes_auto_learn_threshold_nonspam -0.001
bayes_auto_learn_threshold_spam 10.0
4.Make directories for Bayes database and give appropriate permissions
sudo mkdir -p /var/spamassassin/bayes_db
sudo chown -R spamd:spamd /var/spamassassin
5.Start Spamassassin Service
sudo systemctl daemon-reload
sudo systemctl restart spamassassin
Here are some convenient commands to manage your Spamassassin service:
1. Restore Bayes backup data
sudo -H -u spamd sa-learn --restore spamassassin.backup
2. Sync Bayes database
sudo -H -u spamd sa-learn --sync
3. Learn mail in folder as spam:
sudo -H -u spamd sa-learn --spam --showdots --dir /home/manatails/mail/spam
4. Learn mail in folder as ham
sudo -H -u spamd sa-learn --ham --showdots --dir /home/manatails/mail/ham
5. Print bayes database stats:
sudo -H -u spamd sa-learn --dump magic
In ubuntu logs are stored at /var/log/mail.log