Skip to main content
Overview

Résoudre le filtre anti-spam de Mailcow, une bonne fois

December 26, 2025
7 min read

En bref. Le filtre anti-spam standard de Mailcow rate le spam moderne généré par IA et flag à tort du courrier transactionnel légitime. Ajouter un classificateur LLM par-dessus — avec ton propre modèle pour une souveraineté totale des données — corrige les deux problèmes en moins d’une heure.

Lecture complémentaire : Comment l’IA trie le courrier en pratique · Pourquoi les règles SI-ALORS échouent

Si tu es ici parce que le filtre anti-spam de Mailcow ne fonctionne pas (ou parce que du spam évident continue d’atterrir dans ta boîte de réception), cet article est pour toi.

D’abord, une checklist rapide pour dépanner une installation Mailcow/Rspamd existante (pour que tu comprennes pourquoi le message est passé). Ensuite, je te montre la solution que j’ai fini par mettre en place — une seconde couche qui attrape ce genre de déchets de façon fiable.

Checklist rapide : pourquoi Mailcow laisse passer le spam (5 minutes)

Capture d'écran de « Résoudre le filtre anti-spam de Mailcow, une bonne fois »

  1. Ouvre le message dans Mailcow et vérifie Rspamd

    • Regarde le total score et les symbols qui se sont déclenchés.
    • Vérifie si le message était juste en dessous de tes Junk/Reject thresholds.
  2. Vérifie SPF/DKIM/DMARC

    • Si SPF ou DKIM passe et que DMARC n’est pas strict, beaucoup de spam a l’air « suffisamment valide » pour passer.
  3. Ne surestime pas l’apprentissage Bayes

    • L’entraînement aide, mais il faut du volume et du temps. Sur des boîtes plus petites, ça peut sembler lent.
  4. Les thresholds sont peut-être trop conservateurs

    • Beaucoup de configurations préfèrent éviter les faux positifs, donc le spam est traité avec ménagement à moins d’ajuster le scoring.
  5. Une partie du spam repose surtout sur des patterns

    • Astuces de nom d’affichage, incohérence Reply-To, bizarreries unicode — le genre de choses évidentes pour un humain, mais qui ne score pas toujours haut.

Si tu ne dois faire qu’une seule chose : lis les symbols Rspamd du spam qui a atterri dans Inbox. Ça résout généralement le mystère instantanément. Mais même si ça clarifie pourquoi le mail n’a pas été trié comme spam, ça ne résout pas le problème comme par magie, et la configuration de MailCow doit être ajustée à tes besoins. Comme je n’ai pas réussi à le faire même après avoir essayé plusieurs choses, je vais maintenant t’expliquer comment j’ai fini par résoudre le problème.

Ma façon désespérée et peu conventionnelle de réparer le filtre anti-spam défaillant

Les blagues se font souvent aux dépens des autres, mais dans une conversation décente, on essaie de ne pas franchir la ligne entre drôle et insultant. Définir ce qui est « trop loin » est subjectif. Pourtant, il y a un schéma clair : plus une personne est sûre d’elle dans un domaine donné, moins elle a de chances de se sentir insultée, et plus facilement elle finit par rire de la blague stupide de celui qui l’accuse.

Tu vois cette dynamique partout. Pense au triathlète qui dépense une fortune pour une selle de vélo en carbone dure comme la pierre, au développeur qui passe des semaines à configurer Neovim au lieu d’ouvrir simplement VS Code, ou à moi qui n’ai pas le support webcam sur mon laptop parce que le driver n’a pas encore été mergé upstream. Pour un observateur extérieur, ça a l’air d’une souffrance inutile, mais pour celui qui la vit, la galère fait partie du plaisir.

Cependant, on se trompe souvent sur ce qui va réellement toucher quelqu’un. En général, ce ne sont pas les galères qu’on choisit soi-même qui nous rendent sur la défensive, mais les choses face auxquelles on se sent impuissant.

La frustration du filtre par défaut de Mailcow

Ma vraie source de frustration, c’est notre instance Mailcow managée. En tant qu’administrateur, je le prends personnellement quand le système n’arrive pas à bloquer même les déchets les plus triviaux. Ça pique, surtout quand ça s’accompagne de commentaires du genre : « Mon Gmail perso n’a jamais ces problèmes, mais c’est génial qu’on soit obligés d’utiliser cette solution ‘Open Source’ ».

Même si ces commentaires ne sont que des piques amicales de collègues calés en tech, ça me touche quand même un peu. Malgré le fait d’avoir strictement demandé à l’équipe d’entraîner le filtre anti-spam en déplaçant les messages vers Junk ou en les transférant à spam@… (ce qui déclenche le processus d’apprentissage de Rspamd), le système ne s’adapte tout simplement pas assez vite.

Je ne suis pas un expert de l’hébergement e-mail — c’est justement pour ça qu’on paie pour un service managé — mais j’ai du mal à croire que les filtres par défaut soient si mauvais pour attraper des patterns évidents.

Voici le dernier exemple en date, venant de « 💬Rebeca💌 », qui est arrivé dans la boîte de réception le 20 décembre 2025 :

Capture d'écran de « Résoudre le filtre anti-spam de Mailcow, une bonne fois »

Pourquoi les règles anti-spam standard ratent l’évident

Petit disclaimer : je n’ai pas d’expertise poussée sur le fonctionnement interne des protocoles e-mail. C’est justement pour ça qu’on paie pour une instance Mailcow managée ; je pars du principe qu’il devrait y avoir des réglages par défaut acceptables qui gèrent les bases.

Mais en regardant les headers dans la capture d’écran ci-dessous, c’est frustrant de voir que les règles de filtrage standard ratent parfois ce qui est clairement des déchets. Ce n’est même pas le démarchage à froid généré par LLM bon marché, devenu difficile à détecter — c’est juste des déchets à l’ancienne, évidents.

Dans ma tête, je n’arrêtais pas de me dire que même le modèle IA le plus « bête » comprendrait instantanément que c’est du spam. Je voulais juste un service qui me permette de faire tourner un prompt LLM personnalisé sur chaque e-mail entrant pour le catégoriser exactement comme je le veux — que ce soit Spam, Marketing, ou des sujets de travail spécifiques.

Oui, faire passer les e-mails par un LLM peut sembler être une approche un peu lourde pour résoudre un problème de spam, mais je n’ai ni l’expertise pour bidouiller les entrailles du serveur mail, ni le temps de faire des allers-retours avec le support. De plus, on peut utiliser cette approche pour filtrer les mails selon des projets spécifiques ou l’urgence, ce qui devient aussi une nécessité.

Cependant, je ne pouvais pas simplement inscrire tout le monde à un outil d’organisation d’e-mails existant. Toute la raison pour laquelle on s’auto-héberge, c’est la souveraineté des données. Si on se mettait à envoyer chaque e-mail de l’entreprise à une startup tierce pour qu’elle les récolte, autant utiliser Gmail for Business. C’est exactement le vide que comble le tri d’emails par IA pour serveurs mail auto-hébergés — la couche LLM tourne sur ta propre stack Mailcow/Rspamd au lieu de faire transiter ta boîte par le SaaS de quelqu’un d’autre.

La solution : un filtre anti-spam piloté par LLM

Alors, pendant les vacances de Noël, je me suis enfin posé pour construire une solution. J’ai assemblé un outil qui se connecte à nos comptes et utilise un LLM pour trier le courrier selon un prompt simple — rien de trop fou, mais ça a marché.

J’ai passé du temps à peaufiner l’interface pour mes collègues, en la concevant spécifiquement pour qu’ils puissent connecter leurs propres endpoints LLM. C’était la clé : on obtient l’intelligence de l’IA, mais comme on branche nos propres clés API (ou des endpoints locaux), on n’a pas à s’inquiéter qu’un tiers stocke nos données.

Une fois l’interface terminée et l’hébergement mis en place pour l’équipe, je me suis dit que je pouvais aussi bien l’ouvrir au public. Je suis déjà cofondateur d’une entreprise, et une fois qu’on a cet état d’esprit, on oublie comment construire quelque chose d’utile sans y ajouter un processus de paiement. C’est devenu une habitude à ce stade.

Je l’ai appelé email-filter.ai — en partie pour enfin faire taire ces blagues sur ma boîte de réception, mais surtout parce que c’est devenu un outil vraiment solide.

Try AI Email Filtering

Define your own rules with natural language. Works with any email provider.

Your Filters

3 active

Personal

From people I know personally or have emailed before

Spam & Sales

Delete

Cold outreach, LinkedIn spam, or someone trying to sell me something

Favorite Shop Newsletter

Star

Deals and updates from the shops I actually buy from

Add new filter
Acme Project

AI Classification

Waiting for emails...

on your LLM or ours
Incoming emails will be sorted automatically