# Documentation de Spam Scanner

Spam Scanner est un filtre antispam pour Node.js et la ligne de commande, dont le code source est sur GitHub. Il lit un message électronique brut et détermine s’il s’agit de spam, d’hameçonnage (phishing), d’une arnaque ou s’il contient un logiciel malveillant, dans n’importe quelle langue. Il fonctionne comme bibliothèque, outil en ligne de commande, milter Postfix ou Sendmail, filtre de contenu Postfix, serveur spamd compatible avec SpamAssassin, API HTTP ou serveur TCP.

Il est développé par [Forward Email](https://forwardemail.net) pour ses propres serveurs de messagerie.


## Comment un message est évalué

Chaque vérification ajoute ou retire des points. Le total détermine le résultat :

| Score       | Action   | Ce que fait un serveur de messagerie |
| ----------- | -------- | ------------------------------------ |
| Moins de 5  | `accept` | Distribue le message                 |
| De 5 à 14,9 | `tag`    | Le distribue marqué comme spam       |
| 15 et plus  | `reject` | Le refuse pendant la session SMTP    |

Les deux seuils sont modifiables. Chaque résultat liste les tests déclenchés, avec leurs points et une raison : une décision peut donc toujours être expliquée.

Les vérifications :

* **Un classifieur entraîné** lit les mots du message dans n’importe quelle écriture, la forme de ses liens, son expéditeur et ses pièces jointes. Il est livré entraîné sur des jeux de données publics et apprend de votre propre courrier. [Fonctionnement du classifieur](https://spamscanner.net/fr/docs/how-it-works/#the-classifier)
* **La détection de l’hameçonnage** repère les domaines sosies (`paypa1.com`, `pаypal.com` avec un а cyrillique), les liens dont le texte affiche une adresse et dont la cible en est une autre, et les noms d’affichage qui se réclament d’une marque. [Hameçonnage](https://spamscanner.net/fr/docs/how-it-works/#phishing)
* **La vérification des pièces jointes** repère les exécutables, les exécutables renommés en documents, les doubles extensions, les astuces de nom de fichier écrit de droite à gauche, les exécutables dans des fichiers ZIP, les macros Office et le contenu PDF actif. ClamAV peut analyser les pièces jointes à la recherche de virus. [Pièces jointes](https://spamscanner.net/fr/docs/how-it-works/#attachments)
* **Authentification** : SPF, DKIM, DMARC et ARC, quand l’adresse IP du client est connue. [Authentification](https://spamscanner.net/fr/docs/how-it-works/#authentication)
* **Des listes de blocage DNS** pour l’adresse IP du client et les domaines des liens, et les résolveurs filtrants de Cloudflare pour les logiciels malveillants et les sites pour adultes connus. [Listes de blocage](https://spamscanner.net/fr/docs/how-it-works/#blocklists)
* **Des règles** pour les motifs qu’aucun classifieur n’a besoin d’apprendre : la chaîne de test GTUBE, les objets de sextorsion, les arnaques aux factures PayPal, l’usurpation de son propre domaine et les instructions cachées à destination des filtres d’IA. [Règles](https://spamscanner.net/fr/docs/scoring/#rules)
* **Un modèle de langage**, facultatif, donne un second avis sur les cas limites : un modèle local via Ollama ou tout serveur compatible OpenAI, un modèle de décision comme Clef de Cloudflare, ou bien Claude, ChatGPT, Gemini et d’autres. Par défaut, il renvoie une probabilité pour chaque verdict en une seule étape au lieu de rédiger une réponse. [Modèles de langage](https://spamscanner.net/fr/docs/llm/)


## Par où commencer

* [Prise en main](https://spamscanner.net/fr/docs/getting-started/) : l’installer et analyser un premier message.
* [Ligne de commande](https://spamscanner.net/fr/docs/cli/) : toutes les commandes et options.
* [Postfix et Sendmail](https://spamscanner.net/fr/docs/postfix/) : filtrer un serveur de messagerie avec le milter ou un filtre de contenu.
* [Autres serveurs de messagerie](https://spamscanner.net/fr/docs/mail-servers/) : Exim, Haraka, Dovecot, procmail et tout ce qui peut appeler une API HTTP.
* [Entraînement](https://spamscanner.net/fr/docs/training/) : lui apprendre votre propre courrier et mesurer le résultat.
* [Modèles de langage](https://spamscanner.net/fr/docs/llm/) : décision et génération, précision et vitesse mesurées, modèles de décision, fournisseurs, modèles ouverts recommandés, confidentialité et injection de prompt.
* [Langues](https://spamscanner.net/fr/docs/languages/) : comment il lit le chinois, l’arabe, le thaï et toutes les autres écritures.
* [Forward Email](https://spamscanner.net/fr/docs/forward-email/) : comment Forward Email l’utilise, et la mise à niveau depuis la version 5 ou 6.
* [Référence de l’API](https://spamscanner.net/fr/docs/api/) et [tests et scores](https://spamscanner.net/fr/docs/scoring/).
* [Sécurité et confidentialité](https://spamscanner.net/fr/docs/security/) : ce qui quitte la machine, et comment l’empêcher.
