// comment corriger
En-têtes Date et Message-ID manquants ou incorrects
Chaque email doit porter une Date correcte et un Message-ID unique. Sans eux, les filtres anti-spam ajoutent des points et Gmail peut refuser l'email.
Ce que ça veut dire
Chaque email contient en haut des lignes cachées appelées en-têtes. Deux d'entre elles sont attendues dans chaque message :
- Date : quand l'email a été écrit, avec le fuseau horaire. Exemple :
Date: Tue, 14 Oct 2025 09:30:00 +0200 - Message-ID : un identifiant unique, comme un numéro de série. Exemple :
Message-ID: <7f3a91c2@mail.yourdomain.com>
Les logiciels de messagerie normaux les ajoutent automatiquement. Ils manquent ou sont faux en général quand les emails sont envoyés par un script, une extension de site web, une imprimante ou une vieille application qui construit l'email à la main.
Pourquoi c'est important
- SpamAssassin ajoute des points pour une date manquante (
MISSING_DATE), un Message-ID manquant (MISSING_MID), ou une date loin dans le passé ou le futur (DATE_IN_PAST_...,DATE_IN_FUTURE_...). - Gmail peut refuser les emails sans Message-ID valide, et attend des messages qu'ils respectent la norme du format email (RFC 5322).
- Les logiciels de messagerie utilisent ces en-têtes pour trier les messages et regrouper les conversations.
Comment vérifier
Envoyez un email depuis l'outil ou le script qui pose problème vers votre adresse de test sur la page d'accueil (/). Dans le rapport, la section SpamAssassin liste les règles déclenchées. Vous pouvez aussi ouvrir la source originale de l'email dans n'importe quelle messagerie (« Afficher l'original » dans Gmail) et regarder les premières lignes.
Comment corriger
1. Laissez une bibliothèque d'envoi construire l'email
La meilleure solution est d'arrêter d'écrire les en-têtes à la main. Des bibliothèques comme PHPMailer ou Symfony Mailer (PHP), Nodemailer (Node.js) ou le module email (Python) ajoutent correctement les deux en-têtes. En Python, par exemple :
from email.utils import formatdate, make_msgid msg["Date"] = formatdate(localtime=True) msg["Message-ID"] = make_msgid(domain="yourdomain.com")
2. Si vous écrivez les en-têtes vous-même
- Date doit utiliser exactement le format
Day, DD Mon YYYY HH:MM:SS +ZZZZen anglais, avec le vrai décalage horaire. - Message-ID doit être unique pour chaque email, entouré de
<et>, et contenir un@suivi de votre domaine ou du nom de votre serveur. Ne réutilisez jamais le même identifiant. - Utilisez une seule Date et un seul Message-ID par email.
3. Réglez l'horloge
Une date fausse vient souvent d'un serveur dont l'horloge est décalée ou réglée sur le mauvais fuseau horaire. Sous Linux, activez la synchronisation de l'heure (par exemple avec timedatectl set-ntp true) et vérifiez le fuseau horaire.
4. Laissez votre serveur mail ajouter ce qui manque
Certains serveurs peuvent ajouter une Date ou un Message-ID manquant aux messages qu'ils envoient. Postfix, par exemple, le fait pour les emails soumis sur le serveur lui-même, mais pas toujours pour les emails qui viennent d'autres machines. C'est un filet de sécurité, pas un remplacement de la correction de l'application.
Vérifiez que c'est corrigé
Envoyez un nouvel email depuis le même outil vers l'adresse de la page d'accueil. La section SpamAssassin ne doit plus lister MISSING_DATE, MISSING_MID ni les règles de date, et la date affichée doit correspondre à l'heure réelle d'envoi.
Vérifiez que c'est corrigé
Une modification DNS peut prendre de quelques minutes à quelques heures. Ensuite, envoyez un nouvel email de test ou scannez à nouveau votre domaine.
Fiches liées
- Score de spam SpamAssassin élevéSpamAssassin note le contenu de votre email. Au-dessus de 5, il est considéré comme du spam. Découvrez ce qui fait monter le score et comment le faire baisser.
- Exigences de Gmail et Yahoo pour les envois en masseDepuis 2024, Gmail et Yahoo exigent des gros expéditeurs qu'ils authentifient leurs emails, proposent la désinscription en un clic et gardent un taux de plaintes pour spam très bas. Voici la liste à cocher.
- Vos emails arrivent dans le dossier spam de GmailQuand Gmail envoie vos emails en spam, la cause est presque toujours l'authentification, la réputation ou le contenu. Voici comment trouver laquelle et la corriger.
- Erreur Gmail « 550 5.7.26 » : email non authentifiéGmail a refusé votre email parce qu'il n'a pas pu confirmer qu'il vient de votre domaine. Le SPF, le DKIM ou le DMARC est absent ou en échec. Voici comment corriger.
- Ajouter un en-tête List-Unsubscribe (désinscription en un clic)L'en-tête List-Unsubscribe permet à Gmail, Yahoo et Outlook d'afficher un bouton Se désabonner à côté de votre nom d'expéditeur. Les expéditeurs en masse doivent le proposer en un clic.