Um die Bayes-Datenbank von Spamassassin auf dem Mailfilterserver vom IMAP-Server zu aktualisieren, wurde folgendes kleines Skript geschrieben:
#!/bin/sh
set -u
set -e
IP=10.11.12.13
User=sa-update
# SPAM
for datei in $( find Maildir/.Spam/cur/ -mindepth 1 ) ; do
cat $datei | ssh $User@$IP "sa-learn --no-sync --spam" > /dev/null
rm $datei
done
# HAM, nur der neue seit dem letzten Update
for datei in $( find Maildir/cur/ -mindepth 1 -mmin -65 -name "*S" ) ; do
cat $datei | ssh $User@$IP "sa-learn --no-sync --ham" > /dev/null
done
ssh $User@$IP "sa-learn --sync" > /dev/null
Das kann für jeden User einmal die Stunde aufgerufen werden, und trainiert dann die Bayes-Datenbank mit den aktuellen Spam, und mit den neuen HAM.
SSH-Login ohne Passworteingabe ist dafür natürlich notwendig. (SSH-Keys nutzen)