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#

Shell
sudo systemctl disable --now spamd       # or spamassassin
npm install --global spamscanner
spamscanner spamd --port 783 --auth
Shell
spamc -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-* headers

Ele 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-Level e X-Spam-Status no 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_PASS e 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 .pdf continua 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#

Text
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

Exim, Haraka, Dovecot e procmail

Editar esta página no GitHub · Markdown ·