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