Maneira rápida de filtrar mensagens de spam de maildir?

2

Eu tenho um Maildir com cerca de 50k e-mails, dos quais cerca de 42k são spam (o resultado de deixar meu domínio e e-mail e não usá-lo por 2 anos).

Eu tenho o seguinte script para tentar filtrar spam:

#!/bin/sh
for email in "$@"; do
  if ! spamassassin -e < "$email" > /dev/null 2>&1; then
    mv "$email" /tmp/spam
  fi
done

Mas isso está tomando para sempre !

O dispositivo em que só posso fazer isso é limitado, é um NAS com um processador de braço ... mas ainda assim!

Existe alguma maneira mais rápida de fazer isso? No momento, trabalhando em um subdiretório de 1000 arquivos, ele já dura quase 12 horas e encontrou 36 mensagens de spam ...

    
por Richard Stanton 14.10.2017 / 17:43

1 resposta

2

Você pode iniciar o spamd daemon no modo "local tests only" e testar mensagens usando o comando spamc . Deve eliminar grande parte da spamassassin de inicialização, e. analisando arquivos perl e de configuração.

A execução de testes de rede para mensagens antigas de grande número (até dois anos) não é uma IMHO com custo / tempo efetivo.

O AFAIR no meu laptop antigo processando uma mensagem em "modo somente local" leva o spam em torno de 0,3s (três mensagens por segundo ou 10_000 mensagens por hora), processando uma mensagem em "modo de rede" normalmente de 5 a 7s por banda larga móvel conexão. Seria uma boa ideia executar alguns testes de rede em paralelo durante as verificações em massa.

Você encontrará um resumo dos tópicos relacionados ao desempenho no manual spamasassin .

#!/bin/sh
for email in "$@"; do
  # SCORE - "12.7/5.0" on success OR "0/0" on error
  SCORE='spamc -c < "$email" > /dev/null 2>&1'
  # EXIT - 1 on spam detection, 0 on not-spam or error 
  EXIT=$?
  if [ "$EXIT" = "1" ] ; then
    mv "$email" /tmp/spam
  fi
done
    
por 14.10.2017 / 18:16

Tags