# Documentação do Spam Scanner

O Spam Scanner é um filtro de spam para Node.js e para a linha de comando, com o código-fonte no GitHub. Ele lê uma mensagem de e-mail bruta e decide se ela é spam, phishing, um golpe ou se carrega malware, em qualquer idioma. Ele roda como biblioteca, ferramenta de linha de comando, milter para Postfix ou Sendmail, filtro de conteúdo do Postfix, servidor spamd compatível com o SpamAssassin, API HTTP ou servidor TCP.

Ele é desenvolvido pelo [Forward Email](https://forwardemail.net) para os seus próprios servidores de e-mail.


## Como uma mensagem é avaliada

Cada verificação adiciona ou remove pontos. O total decide o resultado:

| Pontuação   | Ação     | O que um servidor de e-mail faz         |
| ----------- | -------- | --------------------------------------- |
| Abaixo de 5 | `accept` | Entrega a mensagem                      |
| De 5 a 14,9 | `tag`    | Entrega a mensagem marcada como spam    |
| 15 ou mais  | `reject` | Recusa a mensagem durante a sessão SMTP |

Os dois limites podem ser alterados. Cada resultado lista os testes acionados, com os seus pontos e um motivo, então uma decisão sempre pode ser explicada.

As verificações:

* **Um classificador treinado** lê as palavras da mensagem em qualquer sistema de escrita, a forma dos seus links, o remetente e os anexos. Ele vem treinado com conjuntos de dados públicos e aprende com os seus próprios e-mails. [Como o classificador funciona](https://spamscanner.net/pt/docs/how-it-works/#the-classifier)
* **As verificações de phishing** pegam domínios parecidos (`paypa1.com`, `pаypal.com` com um а cirílico), links cujo texto mostra um endereço e cujo destino é outro e nomes de exibição que alegam ser uma marca. [Phishing](https://spamscanner.net/pt/docs/how-it-works/#phishing)
* **As verificações de anexos** encontram executáveis, executáveis renomeados como documentos, extensões duplas, truques de nome de arquivo da direita para a esquerda, executáveis dentro de arquivos ZIP, macros do Office e conteúdo ativo em PDF. O ClamAV pode analisar os anexos em busca de vírus. [Anexos](https://spamscanner.net/pt/docs/how-it-works/#attachments)
* **Autenticação**: SPF, DKIM, DMARC e ARC, quando o endereço IP do cliente é conhecido. [Autenticação](https://spamscanner.net/pt/docs/how-it-works/#authentication)
* **Listas de bloqueio no DNS** para o endereço IP do cliente e os domínios dos links, e os resolvedores com filtragem da Cloudflare para sites conhecidos de malware e de conteúdo adulto. [Listas de bloqueio](https://spamscanner.net/pt/docs/how-it-works/#blocklists)
* **Regras** para padrões que nenhum classificador precisa aprender: a sequência de teste GTUBE, assuntos de sextorsão, golpes de fatura do PayPal, autofalsificação e instruções escondidas para filtros de IA. [Regras](https://spamscanner.net/pt/docs/scoring/#rules)
* **Um modelo de linguagem**, opcional, dá uma segunda opinião nos casos duvidosos: um modelo local através do Ollama ou de qualquer servidor compatível com a OpenAI, um modelo de decisão como o Clef da Cloudflare, ou Claude, ChatGPT, Gemini e outros. Por padrão, ele devolve uma probabilidade para cada veredito em um único passo, em vez de escrever uma resposta. [Modelos de linguagem](https://spamscanner.net/pt/docs/llm/)


## Por onde começar

* [Primeiros passos](https://spamscanner.net/pt/docs/getting-started/): instale e analise uma primeira mensagem.
* [Linha de comando](https://spamscanner.net/pt/docs/cli/): todos os comandos e opções.
* [Postfix e Sendmail](https://spamscanner.net/pt/docs/postfix/): filtre um servidor de e-mail com o milter ou com um filtro de conteúdo.
* [Outros servidores de e-mail](https://spamscanner.net/pt/docs/mail-servers/): Exim, Haraka, Dovecot, procmail e qualquer coisa que consiga chamar uma API HTTP.
* [Treinamento](https://spamscanner.net/pt/docs/training/): ensine os seus próprios e-mails ao modelo e meça o resultado.
* [Modelos de linguagem](https://spamscanner.net/pt/docs/llm/): decisão e geração, precisão e velocidade medidas, modelos de decisão, provedores, modelos abertos recomendados, privacidade e injeção de prompt.
* [Idiomas](https://spamscanner.net/pt/docs/languages/): como ele lê chinês, árabe, tailandês e todos os outros sistemas de escrita.
* [Forward Email](https://spamscanner.net/pt/docs/forward-email/): como o Forward Email o usa e como atualizar a partir da versão 5 ou 6.
* [Referência da API](https://spamscanner.net/pt/docs/api/) e [testes e pontuações](https://spamscanner.net/pt/docs/scoring/).
* [Segurança e privacidade](https://spamscanner.net/pt/docs/security/): o que sai da máquina e como impedir isso.
