Score SpamAssassin : bon score, seuil de spam, comment le baisser

Quelque part entre votre ESP et la boîte de réception, un filtre vient d’attribuer un chiffre à votre e-mail. Si ce chiffre vient de SpamAssassin et atteint 5,0, votre message dort en ce moment même dans un dossier spam. Chaque test de spam Unspam fait passer votre e-mail par SpamAssassin, entre autres contrôles, et les données rassurent : 89 % des messages testés se situent dans la plage sûre de 0 à 3,0. Les 11 % restants ignorent en général quelle règle les a brûlés.

Mon objectif ici est de décoder ce score correctement : de quoi le chiffre est fait, les vraies règles avec leurs vraies valeurs en points, là où le score décide réellement de votre sort (et là où Gmail l’ignore discrètement), et les correctifs qui font redescendre un score élevé.

Qu’est-ce que SpamAssassin ?

Apache SpamAssassin est le filtre antispam open source le plus déployé au monde. Ce n’est pas un projet à l’abandon, quoi que suggèrent les numéros de version des guides plus anciens : la version actuelle est la 4.0.2 (août 2025), la branche 4.0 a apporté la prise en charge complète d’Unicode pour le courrier international ainsi qu’un plugin DMARC dédié, et le projet livre des règles mises à jour en continu via son canal sa-update.

On croise SpamAssassin dans plus d’endroits qu’on ne l’imagine :

  • L’hébergement mutualisé. La fonction « Spam Filters » de cPanel est, selon les mots de cPanel, propulsée par Apache SpamAssassin, avec un seuil par défaut de 5. Cela couvre des millions de messageries de petites entreprises.
  • La messagerie d’entreprise et auto-hébergée. SpamAssassin tourne au cœur des passerelles bâties sur Exim, Postfix, MailScanner, MIMEDefang et Amavis.
  • Les chaînes de test. Parce qu’il est ouvert et déterministe, c’est le moteur de scoring standard des outils de test avant envoi, dont le contrôle SpamAssassin intégré à l’audit de délivrabilité d’Unspam.

Une réserve honnête que les guides concurrents périmés passent sous silence : Gmail, Outlook et Yahoo n’utilisent pas SpamAssassin. Google filtre avec ses propres modèles d’apprentissage automatique (des classifieurs TensorFlow, puis le modèle RETVec), et Microsoft décrit son filtrage comme propriétaire. Votre score SpamAssassin compte directement pour le monde des cPanel et des passerelles, et comme approximation des signaux de contenu que pèsent les modèles des grands fournisseurs. Un score propre ne garantit pas la boîte de réception de Gmail ; un score en échec annonce à coup sûr des ennuis partout.

Comment le score fonctionne vraiment

Sous le capot, aucun mystère : de l’arithmétique. Le filtre soumet un message à des centaines de tests, chaque règle déclenchée apporte sa valeur en points (positive ou négative), et le total est comparé à un seuil appelé required_score :

  • Seuil par défaut : 5,0. Un message qui atteint 5,0 ou plus est marqué comme spam ; 4,9 passe, 5,0 échoue.
  • Le seuil est configurable. La documentation officielle qualifie 5,0 de « plutôt agressif », adapté à un utilisateur unique, et suggère aux fournisseurs de messagerie un réglage plus prudent, à 8,0 ou 10,0. Les hébergeurs peuvent aussi durcir le seuil, et c’est pourquoi vivre à 4,5 n’a rien de confortable.
  • Une même règle peut compter différemment selon l’installation. Chaque règle porte jusqu’à quatre valeurs en points, choisies selon que le moteur bayésien et les tests réseau sont activés sur le serveur. Les valeurs ci-dessous correspondent à une installation complète (Bayes et tests réseau), celle que font tourner la plupart des filtres en production et le test d’Unspam.
  • Les scores dérivent légèrement avec le temps. Les serveurs en production récupèrent des règles réévaluées via sa-update : traitez tout chiffre publié comme la valeur par défaut livrée, pas comme une constante de la nature.

Voici à quoi ressemble un vrai score quand on fait la somme :

Exemple chiffré d’un score SpamAssassin : BAYES_99 ajoute 3,5 points, HTML_IMAGE_ONLY_24 ajoute 1,618, MISSING_HEADERS ajoute 1,021, DKIM_VALID retire 0,1 et SPF_PASS retire 0,001, soit un total de 6,04 qui dépasse le seuil de 5,0

Trois règles ont fait tous les dégâts, tandis que les deux authentifications réussies ont racheté à elles deux un dixième de point à peine. Intégrez cette asymétrie et la moitié du comportement de SpamAssassin cesse de surprendre.

Réussir l’authentification vous rapporte une erreur d’arrondi. Échouer aux contrôles de contenu vous coûte des points entiers. L’authentification est un plancher, pas un bonus.

Les règles, décodées avec leurs vraies valeurs en points

Voici les scores par défaut réels du jeu de règles officiel (valeurs pour une installation complète, Bayes et réseau) :

RègleCe qu’elle signifiePoints
BAYES_99Moteur bayésien : probabilité de spam de 99 à 100 %+3,5
BAYES_999Bayes : de 99,9 à 100 %, cumulé par-dessus BAYES_99+0,2
RCVD_IN_PBLL’IP d’envoi figure dans la PBL de Spamhaus (elle ne devrait pas envoyer en direct)+3,335
URIBL_BLACKUn lien du corps du message est sur la blacklist URIBL+1,7
HTML_IMAGE_ONLY_24HTML chargé d’images avec presque pas de texte+1,618
PYZOR_CHECKLe corps correspond à une empreinte de spam connue (Pyzor)+1,392
MISSING_DATELe message n’a pas d’en-tête Date+1,36
DCC_CHECKSignalé comme envoi en masse par le réseau DCC+1,1
MISSING_HEADERSDes en-têtes de base manquent, comme To+1,021
RAZOR2_CHECKLe corps correspond à une empreinte de spam connue (Razor)+0,922
DKIM_VALIDLe message porte une signature DKIM valide-0,1
SPF_PASSLe contrôle SPF a réussi-0,001
BAYES_00Moteur bayésien : probabilité de spam de 0 à 1 %-1,9
GTUBELa chaîne de test standard qui vérifie qu’un filtre fonctionne+1000

Quelques constats sautent aux yeux dès qu’on regarde ce tableau :

  • Bayes domine. Un seul déclenchement de BAYES_99 vaut 3,5 points, soit à lui seul 70 % du chemin vers le seuil de spam.
  • Les règles de réputation frappent fort. Une inscription dans la PBL de Spamhaus (+3,335) plus un lien blacklisté (+1,7), et le score est déjà en échec.
  • La plomberie cassée coûte cher. Des en-têtes Date ou To absents trahissent d’habitude un script d’envoi maison ; ils ajoutent des points parce que le message a l’air généré par une machine, avant même qu’un humain n’en lise un mot.
  • Des règles négatives existent. Un courrier clairement légitime peut descendre sous zéro. Un score négatif n’est pas une erreur : c’est un compliment.

Le moteur bayésien, ou pourquoi « évitez le mot gratuit » est un conseil dépassé

Les règles BAYES viennent d’un classifieur probabiliste entraîné (la documentation de SpamAssassin le décrit comme de style bayésien, avec un combinateur du khi deux). Il évalue statistiquement le message entier par rapport à ce qu’il a appris de vrais spams et de vrai ham, et il s’adapte à mesure que les administrateurs l’entraînent avec sa-learn.

C’est pourquoi le conseil classique des listes à puces, qui consiste à bannir des mots isolés, passe à côté du sujet. Aucun mot ne porte à lui seul une pénalité fixe : le moteur juge le message entier en contexte. Une newsletter de cardiologie peut écrire « médicaments pour le cœur » sans risque, alors qu’un message qui rassemble toute l’empreinte statistique du spam (offre insistante, corps composé uniquement d’images, liens bourrés de traceurs, aucune partie en texte brut) récolte un BAYES_99 même s’il évite tous les mots déclencheurs célèbres. Les mots déclencheurs comptent encore, comme signal faible et comme drapeau rouge pour un humain, et c’est pourquoi nous maintenons un guide des mots déclencheurs de spam et un Test des mots spam gratuit, mais le moteur derrière le score juge des motifs, pas du vocabulaire.

Les tests réseau : les points que vous gagnez avant d’écrire un mot

Avec les tests réseau activés, SpamAssassin interroge internet à votre sujet :

  • Les blacklists DNS. L’IP d’envoi est confrontée à Spamhaus Zen (ses composants SBL, CSS, XBL et PBL portent chacun leur propre règle et leurs propres points) et à SpamCop, entre autres.
  • Les blacklists d’URI. Chaque domaine vers lequel vous pointez est confronté à des listes comme URIBL et Spamhaus DBL. Vous héritez de la réputation de chaque lien de votre pied de page.
  • Les empreintes approximatives. Razor, Pyzor et DCC comparent le corps de votre message à des bases collaboratives de spams en circulation. Un contenu envoyé en masse que d’autres ont signalé ajoute des points, quelle que soit sa qualité rédactionnelle.

En pratique, donc, une partie de votre score SpamAssassin s’est jouée sur votre infrastructure et votre hygiène de liste bien avant que vous n’écriviez une ligne. Contrôlez l’adresse IP et le domaine d’envoi avant d’accuser le contenu : les tests gratuits Blacklist IP et Blacklist domaine couvrent les mêmes zones que celles qui coûtent des points ici.

Comment lire votre score : l’en-tête X-Spam-Status

Sur tout serveur qui fait tourner SpamAssassin, le verdict est inscrit dans les en-têtes du message, et apprendre à le lire transforme un score mystérieux en liste de tâches :

Anatomie d’un en-tête X-Spam-Status : le drapeau Yes, le score de 6,0, le seuil requis de 5,0 et la liste tests qui nomme chaque règle déclenchée, chaque partie étant étiquetée

  • X-Spam-Status commence par le verdict (Yes ou No), puis score= (la somme), required= (le seuil de ce serveur) et tests= (chaque règle déclenchée, c’est-à-dire la partie sur laquelle vous agissez vraiment).
  • X-Spam-Level dessine le score sous forme d’une rangée d’étoiles, une par point entier, pour que des règles de filtrage puissent réagir à la gravité.
  • X-Spam-Checker-Version vous indique quelle version de SpamAssassin et quel jeu de règles vous ont jugé.

Entre la liste tests= qui nomme les règles et le tableau ci-dessus qui les tarife, vous pouvez reconstituer exactement pourquoi un message a échoué, ligne par ligne. Cette reconstitution est précisément ce que la section SpamAssassin d’un rapport de délivrabilité Unspam fait pour vous automatiquement.

Qu’est-ce qu’un bon score SpamAssassin ?

Les paliers sont simples, et méritent d’être mémorisés en même temps que les autres seuils de délivrabilité :

Grille de cartes des chiffres SpamAssassin qui comptent : seuil de spam par défaut de 5,0, zone sûre en dessous de 3,0, 89 % des e-mails testés déjà dans la zone sûre, plus 3,5 pour un déclenchement de BAYES_99, moins 0,1 pour un DKIM valide, seuils de 8,0 à 10,0 suggérés aux fournisseurs de messagerie, 1000 pour la chaîne de test GTUBE, et version 4.0.2 actuelle depuis août 2025

  • En dessous de 3,0 : sûr. Une marge confortable sous tout seuil raisonnable. C’est le palier que 89 % des e-mails testés avec Unspam atteignent déjà : une cible réaliste, pas du perfectionnisme.
  • De 3,0 à 4,9 : ça passe, mais c’est exposé. À un déclenchement de Bayes ou à une nouvelle inscription sur une blacklist de l’échec, et déjà en échec chez les hébergeurs qui ont durci le seuil par défaut.
  • 5,0 et au-delà : marqué comme spam sur une installation par défaut. À deux chiffres, certaines configurations suppriment discrètement le message au lieu de le livrer dans les spams (les recommandations officielles réservent la suppression automatique à 15,0 et plus).

Un mot sur le sens de lecture, parce que des guides embrouillés créent une vraie confusion : avec SpamAssassin, plus c’est bas, mieux c’est. Si un outil de test vous montre un score sur 100 où plus c’est haut, mieux c’est, il s’agit d’un score de délivrabilité composite, une tout autre bête, que nous traitons dans qu’est-ce qu’un score de spam.

Comment vérifier votre score SpamAssassin

Vous avez trois voies, et elles diffèrent surtout par la part du travail que vous voulez faire vous-même :

  1. Lancez un test de spam avant envoi. Le test de spam gratuit d’Unspam évalue votre message exact avec SpamAssassin et liste chaque règle déclenchée à côté des contrôles SPF, DKIM, DMARC, blacklists et HTML, en 30 secondes environ, sans inscription.
  2. Lisez une copie reçue. Si le message est déjà passé par un serveur qui fait tourner SpamAssassin, le verdict se trouve dans l’en-tête X-Spam-Status décrit plus haut. Faites-vous suivre une copie depuis la messagerie concernée et lisez la liste tests=.
  3. Faites tourner SpamAssassin vous-même. Sur votre propre serveur, passez-lui un message brut : spamassassin -t < message.eml affiche le score et un rapport règle par règle. Gardez les règles à jour avec sa-update, entraînez le moteur bayésien avec sa-learn --spam et sa-learn --ham, et vérifiez que la chaîne fonctionne en envoyant la chaîne de test GTUBE, conçue pour marquer 1000 points et finir dans les spams à chaque fois.

La première option est la seule qui évalue votre message avant que votre liste ne le voie, et c’est tout l’intérêt : un score découvert dans un rapport de bounce est un score découvert trop tard.

Comment faire baisser un score SpamAssassin élevé

Traitez la liste de haut en bas. Je l’ai triée par points récupérés à l’heure d’effort, et les premières entrées sont presque toujours l’origine réelle des scores élevés.

  1. Corrigez ce que les règles nomment littéralement. Lisez la liste tests= de votre rapport. MISSING_DATE et MISSING_HEADERS signifient que votre script d’envoi ou la configuration de votre ESP produit des messages malformés : réparez la plomberie et ces points disparaissent complètement.
  2. Soldez vos règles de réputation. Si des règles RCVD_IN_ ou URIBL_ se sont déclenchées, aucune retouche de texte ne vous sauvera. Faites d’abord délister l’adresse IP ou le domaine (notre guide de retrait des blacklists couvre les principales listes), puis auditez chaque domaine lié, y compris les raccourcisseurs de liens et les domaines de tracking que vous ne contrôlez pas.
  3. Authentifiez tout, puis arrêtez d’en attendre du crédit. Publiez et alignez SPF, DKIM et DMARC (le guide complet) ; vérifiez avec les checkers SPF, DKIM et DMARC. Cela supprime les règles de pénalité et satisfait le plugin DMARC de SpamAssassin 4.0, mais souvenez-vous de l’asymétrie : cela rapporte des fractions, cela évite des points entiers.
  4. Rééquilibrez le contenu. Livrez toujours une partie en texte brut à côté du HTML, gardez un vrai rapport texte/images (les règles HTML_IMAGE_ONLY existent parce qu’un message tout en images est une esquive classique du spam), et coupez les schémas qui font sonner les filtres.
  5. Respectez le moteur bayésien. On ne trompe pas un classifieur statistique avec des synonymes. Envoyez du contenu avec lequel les gens interagissent vraiment, à des gens qui l’ont demandé, et les règles Bayes deviennent vos alliées : BAYES_00 vous rend 1,9 point.
  6. Testez avant chaque envoi. Les scores changent avec les mises à jour de règles et le statut des listes : un message qui passait au trimestre dernier peut échouer aujourd’hui. Un test de spam avant envoi le détecte tant que la correction est encore gratuite.

Vérifiez votre score maintenant

Vous n’avez pas besoin de deviner quel palier est le vôtre. Faites passer votre e-mail par le test de spam gratuit d’Unspam : il évalue le message exact avec SpamAssassin, montre chaque règle déclenchée avec sa valeur en points et lance à côté les contrôles SPF, DKIM, DMARC, blacklists et contenu, en 30 secondes environ, sans inscription. Si vous êtes dans les 89 %, vous le saurez. Si vous êtes dans les 11 %, vous saurez enfin pourquoi.

Questions fréquentes

Qu’est-ce qu’un bon score SpamAssassin ?

Tout ce qui reste sous 5,0 passe sur une installation SpamAssassin par défaut, mais la cible sûre se situe sous 3,0. Le seuil est configurable serveur par serveur : un 4,9 qui se glisse de justesse chez un hébergeur peut échouer sur une passerelle d’entreprise plus stricte. Rester sous 3,0 laisse de la marge partout : sur les e-mails testés avec Unspam, 89 % se situent dans cette plage sûre de 0 à 3,0, ce qui en fait une barre tout à fait réaliste pour du courrier légitime.

Un score SpamAssassin de 5,0 exactement est-il du spam ?

Oui. SpamAssassin marque un message comme spam dès que son score est supérieur ou égal au seuil required_score, et le seuil par défaut est 5,0. Donc 4,9 passe et 5,0 échoue sur une installation par défaut. Les administrateurs peuvent relever ou abaisser ce seuil ; la documentation officielle qualifie même 5,0 d’agressif et suggère aux grands systèmes de messagerie un réglage plus prudent, à 8,0 ou 10,0.

Un score SpamAssassin peut-il être négatif ?

Oui, et un score négatif est une bonne nouvelle. Des règles portent des valeurs en points négatives : un signal de ham marqué venu du moteur bayésien (BAYES_00) retire jusqu’à 1,9 point, et une signature DKIM valide (DKIM_VALID) en retire 0,1. Un e-mail bien authentifié et clairement légitime peut totaliser moins de zéro, ce qui signifie simplement qu’il paraît encore plus sûr que la ligne de base à 0.

Gmail et Outlook utilisent-ils SpamAssassin ?

Non. Google décrit le filtrage de Gmail comme son propre système d’apprentissage automatique (des classifieurs fondés sur TensorFlow, puis le modèle RETVec annoncé en 2023), et Microsoft indique que Microsoft 365 et Outlook.com reposent sur des technologies de filtrage propriétaires. Un score SpamAssassin compte pourtant de deux façons : il filtre directement le courrier de millions de messageries cPanel ou auto-hébergées et de passerelles d’entreprise, et il reste une approximation utile des signaux de contenu que les grands fournisseurs pèsent dans leurs propres modèles.

Comment vérifier gratuitement mon score SpamAssassin ?

Faites passer votre e-mail par un test de spam gratuit comme Unspam, qui évalue le message exact avec SpamAssassin et affiche le résultat à côté des contrôles SPF, DKIM, DMARC et blacklists, en 30 secondes environ. Vous pouvez aussi lire le score dans les en-têtes d’un message reçu (la ligne X-Spam-Status donne le score, le seuil et chaque règle déclenchée) ou lancer SpamAssassin en local avec la commande spamassassin -t si vous gérez votre propre serveur.

SPF, DKIM et DMARC influencent-ils mon score SpamAssassin ?

Oui, mais de façon asymétrique. Réussir ne rapporte presque rien : SPF_PASS retire seulement 0,001 point et DKIM_VALID 0,1. En revanche, une authentification en échec ou absente ajoute des points, et SpamAssassin 4.0 livre un plugin DMARC avec des règles dédiées aux politiques reject, quarantine et absentes. Autrement dit, l’authentification ne rachète pas un contenu spammé : c’est une exigence plancher, pas un bonus.

Découvrez où votre campagne arrive vraiment.

Lancer un test antispam gratuit Test Inbox Placement