← Tous les articles

Réparer le spam avec l'IA : quand les filtres classiques ne suffisent plus

Sur cette page

J’utilise Fastmail depuis des années. Excellent service, prix raisonnable, ni pub ni pistage. Mais le filtrage du spam ? Complètement aléatoire.

Le problème, ce n’est pas le spam classique. Fastmail en attrape la plupart sans souci. Des enregistrements DKIM/SPF qui ne correspondent pas ? Bloqués. Des domaines sur liste noire ? Filtrés. Tout ça marche.

Le problème, c’est tout le reste. Un mail de phishing envoyé depuis une vraie adresse gmail.com qui se fait passer pour Netflix. Une campagne marketing d’une boîte dont je n’ai jamais entendu parler et qui a je ne sais comment récupéré mon adresse. Ces mails passent tous les contrôles techniques, avec une authentification en règle et une réputation d’expéditeur propre, mais ça reste de la camelote dont je ne veux pas et qui encombre ma boîte.

Le spam moderne

Voilà ce qui atterrit régulièrement dans ma boîte :

  • Du spam « On a refait votre site » venu d’agences qui ont l’air légitimes
  • Des boîtes de SEO qui promettent de booster mon classement
  • Des e-mails marketing auxquels je ne me suis très clairement jamais abonné
  • Du spam de newsletter, bien dessiné mais sans aucun rapport avec moi

Ces mails ne déclenchent pas les filtres classiques. Ils viennent de domaines valides, voire d’adresses gmail.com et outlook.com. Ils ont des enregistrements SPF et DKIM en règle. La grammaire est parfaite. Selon tous les critères techniques, ce sont des mails légitimes, simplement des mails dont personne ne veut.

Et c’est là que ça devient intéressant : 89 % des e-mails malveillants contournent l’authentification SPF, DKIM et DMARC1. Ces protocoles devaient régler la fraude par e-mail, mais les spammeurs se sont adaptés. Ils utilisent maintenant une infrastructure légitime.

Ce qu’il faut vraiment filtrer

Le problème n’est pas juste de « réduire le spam ». C’est plus nuancé :

Phishing : des mails frauduleux dont les liens ne correspondent pas à la marque annoncée. Je reçois un flux régulier de faux mails « Netflix » et « Spotify » qui me demandent de mettre à jour mes données de paiement. Ils s’améliorent : mise en page soignée, langage convaincant, domaines presque justes. Les filtres classiques en attrapent certains, mais les plus sophistiqués passent. Fastmail n’attrape ceux-là pas du tout.

Spam classique : l’usurpation de domaine, où le mail prétend venir d’un domaine alors qu’il vient d’un autre. Les contrôles SPF/DKIM les attrapent sans mal. Ce n’est pas le vrai problème.

Courrier indésirable : c’est là que tout s’effondre. Des mails d’apparence légitime, de vrais domaines, de vraies adresses gmail.com ou outlook.com, qui ne sont que du marketing non sollicité. « On a remarqué que votre site avait besoin d’un refresh. » « Laissez-nous gérer votre SEO. » « Offre exclusive pour les chefs d’entreprise. » Ils passent l’authentification parce qu’ils partent d’une vraie infrastructure. La grammaire est correcte. Ils ont l’air pros. Mais je n’ai rien demandé, je ne me suis abonné à rien, et ils encombrent ma boîte. Il faut analyser leur contenu, pas seulement inspecter les en-têtes.

Les chiffres parlent

L’ampleur du problème est énorme. Environ 47 % de tout le trafic e-mail est du spam en 20242. Ça fait 160 milliards de spams envoyés chaque jour dans le monde3. Gmail seul bloque 15 milliards de spams par jour avec ses filtres pilotés par l’IA, avec un taux de détection de 99,9 %4.

Mais le plus parlant, c’est que Google a bloqué 265 milliards d’e-mails non authentifiés en 20245, parce qu’ils sont faciles à repérer. Le spam authentifié ? C’est plus dur.

Seuls 33,4 % des domaines du top 1 million ont un enregistrement DMARC, et parmi eux 57,2 % utilisent la politique p=none, sans effet, qui ne fait rien6. Ça veut dire que 85,7 % des domaines n’ont aucune protection DMARC efficace. Les spammeurs le savent et en profitent sans scrupule.

Mais le plus parlant, c’est que 89 % des e-mails malveillants contournent l’authentification SPF, DKIM et DMARC1. Ces protocoles devaient régler la fraude par e-mail, mais les spammeurs se sont adaptés. Ils utilisent maintenant une infrastructure légitime.

Les chiffres sont brutaux. Si on regarde ce qui passe vraiment, la répartition du spam raconte une histoire intéressante :

L’approche de Fastmail (et pourquoi elle ne suffit pas)

Fastmail utilise SpamAssassin combiné à son propre filtre de contenu Vade7. C’est une base solide : SpamAssassin existe depuis toujours et marche bien contre le spam classique. Le filtre Vade ajoute de la détection de motifs et met à jour ses règles selon les menaces du moment.

Mais voilà où ça casse : l’apprentissage fonctionne à l’envers. Si tu utilises un client mail comme Mail sur iOS, tu ne peux pas simplement appuyer sur « Spam » pour entraîner le filtre. À la place, tu dois8:

  1. Créer un dossier spécial
  2. Aller dans Réglages → Dossiers et activer « Scan this folder daily and learn any new messages »
  3. Le régler pour apprendre « as spam »
  4. Y déplacer le spam à la main

Je ne veux pas utiliser le client web de Fastmail. Je veux leur hébergement avec mon propre client mail. Avec cette friction, je ne l’entraîne simplement pas. Résultat, le filtre ne s’améliore jamais.

Pourquoi l’IA a vraiment du sens ici

Les filtres anti-spam classiques fonctionnent avec des règles et des motifs. Mais cette zone grise demande de comprendre le contexte et l’intention, exactement ce que les grands modèles de langage font bien.

L’IA gère bien l’ambiguïté. Elle sait lire un mail et dire s’il s’agit d’une vraie demande commerciale ou d’un énième « on peut refaire votre site ». Elle comprend les tactiques d’urgence, elle repère les contextes qui ne collent pas, elle attrape les subtilités qui échappent aux systèmes à base de règles.

La construction

Je voulais tester l’idée avant de m’engager sur de l’infrastructure. J’ai donc exporté quelques centaines de fichiers .eml de ma boîte Fastmail et monté un banc d’essai avec Ollama, qui fait tourner Llama 3.1 8B en local.

Le processus avait deux parties :

Étiquetage manuel : j’ai parcouru mes mails exportés et je les ai classés à la main : personnel, transactionnel, newsletter, marketing, spam, phishing, etc. Ça m’a donné une vérité de terrain pour comparer.

Évaluation du modèle : j’ai passé les mêmes mails dans le LLM avec un prompt soigneusement rédigé qui lui demandait de catégoriser et de noter chacun. Puis j’ai comparé ses classements à mes étiquettes pour voir où il réussissait et où il se plantait.

Ça m’a permis d’itérer sur le prompt sans cramer des crédits d’API ni gérer la complexité d’un déploiement. Une fois la précision au-dessus de 85 % et les faux positifs sous 5 %, j’ai su que ça valait le coup de déployer.

La version de production est un Cloudflare Worker qui :

  1. Intercepte les e-mails entrants via Cloudflare Email Routing
  2. Extrait l’expéditeur, l’objet et le corps
  3. Analyse le contenu avec @cf/meta/llama-3.1-8b-instruct via Workers AI
  4. Catégorise le mail et lui attribue un score de spam (0-10)
  5. Ajoute des en-têtes : X-Wh-Spamscore, X-Wh-Category et X-Wh-Reasoning
  6. Transfère à Fastmail avec les en-têtes intacts

J’utilise Llama 3.1 8B parce qu’il est rapide (inférence en moins d’une seconde) et assez bon pour saisir la nuance entre une vraie communication et de la camelote marketing.

Catégories et notation

L’IA range les mails en dix types :

  • personal : correspondance personnelle
  • transactional : confirmations de commande, réinitialisations de mot de passe, reçus
  • newsletter : les vraies newsletters auxquelles je suis abonné
  • marketing : mails promotionnels, argumentaires de vente
  • social : notifications des réseaux sociaux
  • automated : notifications système, alertes de supervision
  • phishing : soupçon de vol d’identifiants
  • scam : combines pour s’enrichir vite, demandes de paiement urgentes
  • spam : courriel de masse indésirable et générique
  • suspicious : intention floue mais potentiellement malveillante

Les scores de spam vont de 0 à 10 :

  • 0-2 : mail propre et légitime
  • 3-4 : probablement légitime mais commercial
  • 5-6 : caractéristiques suspectes
  • 7-8 : phishing ou arnaque probable
  • 9-10 : menace avérée

Premiers résultats

Je n’ai pas encore déployé ça en production, mais je l’ai fait tourner sur des messages récents de ma boîte, en exportant les mails depuis Mac Mail.

Voici les résultats préliminaires :

CatégorieNombreScore moyenFaux positifs
Personnel3260,881
Transactionnel7080,2810
Newsletter4621,552
Marketing3532,919
Social2720,629
Automatisé1631,839
Phishing2729,321
Arnaque828,692
Spam547,630
Suspect275,762
Total2 719-45

L’implémentation

Le worker gère l’interception des mails, l’analyse par l’IA et le transfert. Ses points clés :

  • Extrait le corps du mail intelligemment (gère le multipart, le base64, le quoted-printable)
  • Tronque à 2 500 caractères pour la performance (en gardant les liens et les phrases entiers)
  • Un prompt très travaillé pour guider l’analyse de l’IA
  • Une gestion d’erreurs solide : si l’IA plante, le mail est transféré avec des valeurs par défaut sûres
  • Valide les sorties pour que les scores restent entre 0 et 10 et que les catégories soient valides

Le prompt explique toutes les catégories, les règles de notation et les signaux d’alerte. Il insiste sur peu de faux positifs pour les mails personnels et transactionnels, parce que la dernière chose qu’on veut, c’est qu’un mail légitime parte en spam.

Je n’ai pas prévu d’étape pour détecter les attaques par injection de prompt, mais j’imagine qu’une version commerciale aurait besoin de cette couche de sécurité.

Pourquoi c’est important

Google et Yahoo exigent désormais DMARC pour les expéditeurs en masse (5 000+ mails par jour)9. Ils imposent un seuil de 0,3 % de plaintes pour spam10. L’authentification, c’est le minimum vital maintenant.

Mais l’authentification seule ne suffit pas. 89 % des e-mails malveillants passent les contrôles d’authentification1. Les spammeurs utilisent une infrastructure légitime. Ils connaissent les règles et jouent dedans.

Il manque l’analyse du contenu. Comprendre ce qu’un mail essaie vraiment de faire, pas seulement d’où il vient. C’est là que l’IA entre en jeu.

J’ai mis le dépôt sur Github : willhackett/email-filtering, avec les instructions pour le déployer toi-même et le tester sur ta propre boîte.

Footnotes

  1. Keepnet, 2025 Phishing Statistics, August 2025 ↩ ↩2 ↩3

  2. Mailmodo, 23 Email Spam Statistics to Know in 2025, March 2025 ↩

  3. EmailToolTester, Spam Statistics 2025, October 2024 ↩

  4. SQ Magazine, Email Spam Statistics 2025, September 2025 ↩

  5. Keepnet, 2025 Phishing Statistics, August 2025 ↩

  6. DMARC Checker, SPF, DKIM, and DMARC in 2024: Analyzing the Top 1M Domains, 2024 ↩

  7. Fastmail, Spam filtering ↩

  8. Fastmail, Improving spam protection ↩

  9. PowerDMARC, Google and Yahoo Email Authentication Requirements 2025, August 2025 ↩

  10. Sinch Mailgun, State of email deliverability 2025, 2025 ↩