Filtragem de spam treinável pelo usuário com o Exim e o Dovecot

2

Atualmente estou usando o Exim para entregar e-mails via dovecot-lda nas caixas de correio da Dovecot. Gostaria de adicionar filtragem de spam, mas não quero rejeitar falsos positivos no Exim e quero treinar o filtro bayesiano do cliente.

Então: como eu configuro um spam de modo que o spam aterre em uma pasta Junk , e quando o usuário encontra spam em seu Inbox ou presunto em seu Junk , ele o move para a caixa correta, treina o spamd.

Eu encontrei dovecot-antispam mas não tenho certeza sobre sua qualidade, parece apenas apoiar dspam (e crm114, que está morto, último lançamento em agosto de 2009).

    
por pascal 03.10.2012 / 17:24

1 resposta

2

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
    
por 03.10.2012 / 17:52

Tags