Você não precisa fazer nada de especial para spam. Eu não estou muito familiarizado com o MDA do Exim, então espero que alguém possa escrever uma resposta específica para ele. Quando seu agente de entrega de mensagens é executado, ele deve enviar o email por meio de spamc -u $USERNAME
(modifique a variável conforme necessário). Então dê uma olhada nos cabeçalhos. Se "X-Spame-Status: Yes" existir, entregue o email a uma subpasta do Maildir do usuário.
Eu uso maildrop
para meu MDA. Configuração (em /usr/local/etc/maildroprc
) é:
if ($LOGNAME ne "")
{
xfilter "spamc -u $LOGNAME"
} else {
xfilter "spamc -u $USER"
}
if ( /^X-Spam-Status: Yes/ )
{
'test -d $DEFAULT/.Junk'
if( $RETURNCODE == 1 )
{
'maildirmake -f Junk $DEFAULT'
}
exception
{
to "$DEFAULT/.Junk"
}
}
Quanto ao aprendizado bayesiano, escrevi um script que o cron chama a cada 20 minutos:
#!/bin/csh
foreach cuser ('ls /home')
if ( -d $cuser/Maildir) then
sa-learn --dbpath /home/$cuser/.spamassassin --spam /home/$cuser/Maildir/.Junk
endif
end
E eu sigo isso com a seguinte linha para excluir Lixo que tem mais de 2 semanas. Você não precisa limpá-lo, mas a maioria das pessoas nunca irá sozinha:
find /usr/home/*/Maildir/.Junk/*/ -ctime +2w -type f -delete