Eu usei a próxima abordagem:
O MTA é o exim que passa a cópia da mensagem para o spamassassin da DATA ACL. SA retorna a pontuação e não realiza modificações ou roteamento de mensagens. Se a pontuação calculada estiver acima do limite, exim adicionará um cabeçalho especial (X-Spam-Detected: YES) à mensagem.
Em seguida, a mensagem é encaminhada para entrega local através de dovecot ' deliver . Dovecot tem pidgeonhole plug-in instalado, que é a implementação do mecanismo sieve . Quando a mensagem satisfizer algumas condições (por exemplo, o cabeçalho "X-Spam-Detected" existe) pidgeonhole armazena a mensagem na subpasta da caixa de entrada:
if exists "X-Spam-Detected"
{
fileinto "Junk";
stop;
}
Se for detectada uma mensagem errada (falso positivo ou falso negativo), o usuário pode mover a mensagem para o local correto. Dovecot tem outro plugin chamado antispam que rastreia os movimentos das mensagens. Quando a mensagem é movida PARA a subpasta "Spam", automaticamente sa-learn --spam é iniciado para essa mensagem. Quando a mensagem é movida da subpasta "Spam", sa-learn --ham é iniciado.
Mensagens antigas podem ser removidas automaticamente com o utilitário doveadm :
doveadm expunge -A mailbox Junk savedbefore 31d