# Documentazione di Spam Scanner

Spam Scanner è un filtro antispam per Node.js e per la riga di comando, con il codice sorgente su GitHub. Legge un messaggio email grezzo e decide se è spam, phishing, una truffa o se contiene malware, in qualsiasi lingua. Funziona come libreria, come strumento da riga di comando, come milter per Postfix o Sendmail, come content filter di Postfix, come server spamd compatibile con SpamAssassin, come API HTTP o come server TCP.

È sviluppato da [Forward Email](https://forwardemail.net) per i propri server di posta.


## Come viene giudicato un messaggio

Ogni controllo aggiunge o toglie punti. Il totale decide l'esito:

| Punteggio   | Azione   | Cosa fa un server di posta          |
| ----------- | -------- | ----------------------------------- |
| Sotto 5     | `accept` | Consegna il messaggio               |
| Da 5 a 14,9 | `tag`    | Lo consegna segnato come spam       |
| 15 e oltre  | `reject` | Lo rifiuta durante la sessione SMTP |

Entrambe le soglie si possono modificare. Ogni risultato elenca i test scattati, con i loro punti e un motivo, quindi una decisione si può sempre spiegare.

I controlli:

* **Un classificatore addestrato** legge le parole del messaggio in qualsiasi sistema di scrittura, la forma dei suoi link, il mittente e gli allegati. Viene distribuito già addestrato su dataset pubblici e impara dalla tua posta. [Come funziona il classificatore](https://spamscanner.net/it/docs/how-it-works/#the-classifier)
* **I controlli antiphishing** intercettano i domini sosia (`paypa1.com`, `pаypal.com` con una а cirillica), i link il cui testo mostra un indirizzo e la cui destinazione è un altro, e i nomi visualizzati che si spacciano per un marchio. [Phishing](https://spamscanner.net/it/docs/how-it-works/#phishing)
* **I controlli sugli allegati** trovano eseguibili, eseguibili rinominati come documenti, doppie estensioni, trucchi con i nomi file da destra a sinistra, eseguibili dentro file ZIP, macro di Office e contenuti PDF attivi. ClamAV può analizzare gli allegati alla ricerca di virus. [Allegati](https://spamscanner.net/it/docs/how-it-works/#attachments)
* **Autenticazione**: SPF, DKIM, DMARC e ARC, quando l'indirizzo IP del client è noto. [Autenticazione](https://spamscanner.net/it/docs/how-it-works/#authentication)
* **DNS blocklist** per l'indirizzo IP del client e per i domini nei link, e i resolver con filtraggio di Cloudflare per i siti noti di malware e per adulti. [Blocklist](https://spamscanner.net/it/docs/how-it-works/#blocklists)
* **Regole** per gli schemi che nessun classificatore ha bisogno di imparare: la stringa di test GTUBE, gli oggetti delle sextortion, le truffe con fatture PayPal, l'auto-spoofing e le istruzioni nascoste per i filtri IA. [Regole](https://spamscanner.net/it/docs/scoring/#rules)
* **Un modello linguistico**, facoltativo, dà un secondo parere sui casi dubbi: un modello locale tramite Ollama o qualsiasi server compatibile con OpenAI, un modello decisionale come Clef di Cloudflare, oppure Claude, ChatGPT, Gemini e altri. Per impostazione predefinita restituisce una probabilità per ogni verdetto in un solo passaggio, invece di scrivere una risposta. [Modelli linguistici](https://spamscanner.net/it/docs/llm/)


## Da dove iniziare

* [Primi passi](https://spamscanner.net/it/docs/getting-started/): installarlo e analizzare un primo messaggio.
* [Riga di comando](https://spamscanner.net/it/docs/cli/): ogni comando e opzione.
* [Postfix e Sendmail](https://spamscanner.net/it/docs/postfix/): filtrare un server di posta con il milter o un content filter.
* [Altri server di posta](https://spamscanner.net/it/docs/mail-servers/): Exim, Haraka, Dovecot, procmail e qualsiasi cosa possa chiamare un'API HTTP.
* [Addestramento](https://spamscanner.net/it/docs/training/): insegnargli la tua posta e misurare il risultato.
* [Modelli linguistici](https://spamscanner.net/it/docs/llm/): decisioni e generazione, precisione e velocità misurate, modelli decisionali, provider, modelli aperti consigliati, privacy e prompt injection.
* [Lingue](https://spamscanner.net/it/docs/languages/): come legge il cinese, l'arabo, il thailandese e ogni altro sistema di scrittura.
* [Forward Email](https://spamscanner.net/it/docs/forward-email/): come lo usa Forward Email, e l'aggiornamento dalla versione 5 o 6.
* [Riferimento API](https://spamscanner.net/it/docs/api/) e [test e punteggi](https://spamscanner.net/it/docs/scoring/).
* [Sicurezza e privacy](https://spamscanner.net/it/docs/security/): cosa lascia la macchina e come impedirlo.
