Uma alternativa ao SpamAssassin que fala o protocolo do spamd
O Spam Scanner responde ao protocolo spamdO daemon do SpamAssassin. Seu protocolo é usado pelo spamc, Exim, Haraka e outros clientes do SpamAssassin. do SpamAssassin, então softwares escritos para o SpamAssassin o usam sem mudanças: o spamc, a condição spam do Exim, o plugin spamassassin do Haraka e outros.
Faça a troca#
sudo systemctl disable --now spamd # or spamassassin
npm install --global spamscanner
spamscanner spamd --port 783 --authspamc -c < message.eml # prints the score, exits 1 for spam
spamc -R < message.eml # the report, one line per test
spamc < message.eml # the message with X-Spam-* headersEle responde a CHECK, SYMBOLS, REPORT, REPORT_IFSPAM, PROCESS, HEADERS, PING e, com --allow-tell, a TELL para aprendizado. Os testes de ponta a ponta do projeto executam o próprio spamc do SpamAssassin contra ele.
O que continua igual#
- Os cabeçalhos:
X-Spam-Flag,X-Spam-Score,X-Spam-LeveleX-Spam-Statusno formato do SpamAssassin, então as regras existentes do Sieve, do procmail e dos clientes de e-mail continuam funcionando. - Uma pontuação com limite de 5, formada por testes nomeados com pontos:
BAYES_99,RBL_ZEN,SPF_FAIL,DKIM_PASSe assim por diante. - As pontuações de cada teste podem ser alteradas pelo nome do teste.
O que é diferente#
- Idiomas. As palavras são segmentadas com as regras do Unicode, então chinês, japonês e tailandês são lidos como palavras, e não como uma única sequência longa, e disfarces como caracteres invisíveis ou letras cirílicas em palavras latinas são desfeitos antes.
- Phishing. Domínios parecidos, links enganosos e nomes de marcas em nomes de exibição são verificados sem regras extras.
- Anexos são identificados pelos seus bytes: um executável renomeado para
.pdfcontinua sendo um executável. - Modelos de linguagem. Os casos duvidosos podem ir para um modelo local através do OllamaUm programa que baixa e executa modelos de linguagem abertos na sua própria máquina, com uma API HTTP. ou para um modelo hospedado.
- Node.js. Um único
npm install, ou um binário independente; nada de módulos Perl ou atualizações de regras para gerenciar.
O Spam Scanner não executa os arquivos de regras do SpamAssassin, e o formato do seu banco de dados Bayes é próprio: treine-o com os mesmos e-mails usando spamscanner train.
Exim#
spamd_address = 127.0.0.1 783
# in the DATA ACL
warn spam = nobody:true
add_header = X-Spam-Score: $spam_score
defer spam = nobody:true
condition = ${if >={$spam_score_int}{150}}
message = Message rejected as spam