O SpamAssassin vem com sa-learn
fora da caixa (não para confundir com o sa-learn-cyrus
que você mencionou). Ele vem com dois modos de aprendizagem, ham e spam. Seria necessário um script muito simples para percorrer a caixa de correio de cada usuário, fazendo um "ham" no início, e um segundo passo para "spam". Algo (aproximadamente) como:
#!/bin/bash
# change these to reflect the folder layout used on your server
BASEDIR=/home
UINBOX=Maildir/Inbox
USPAMBOX=Maildir/Spam
# do some housekeeping...
sa-learn --force-expire
# enumerate each user and process ham/spam
for USRNAME in 'ls -l /home'
do
for MAILSTATE in new cur
do
sa-learn --ham $BASEDIR/$USRNAME/$UINBOX/$MAILSTATE/*
sa-learn --spam $BASEDIR/$USRNAME/$USPAMBOX/$MAILSTATE/*
done
done
Coloque em um arquivo, vamos chamá-lo de sa-trainer.sh
. Eu incluí o e-mail já lido como parte do processo, apenas no caso de algo ser lido (intencionalmente ou acidentalmente). Não importa muito para o processo, pois as duplicatas serão detectadas e efetivamente ignoradas.