Un vérificateur SPF ou DMARC lit quelques enregistrements DNS de type TXT et vous dit s’ils sont bien formés. Vous pouvez lancer les mêmes requêtes vous-même, et lire les enregistrements directement en apprend plus qu’une coche verte : quels serveurs peuvent envoyer des e-mails au nom de votre domaine, ce que les destinataires doivent faire des messages qui échouent, et où partent les rapports.
Ce guide explique ce que contrôle chaque mécanisme, comment lire les enregistrements, comment durcir une politique DMARC sans perdre de courrier légitime, quoi publier pour les domaines qui n’envoient pas d’e-mails et ce qu’exigent Gmail, Yahoo et Outlook.com. Il indique aussi la recommandation de l’ANSSI sur SPF et la position plus stricte du BSI allemand sur DMARC. Tous les noms de domaine et adresses IP sont des exemples.
Portée de ce guide
Le snapshot gratuit lit les enregistrements SPF, DMARC, MTA-STS et CAA du nom d’hôte exact saisi. Il ne vérifie pas DKIM, ne développe pas les include: de SPF, ne télécharge pas le fichier de politique MTA-STS et ne cherche pas d’enregistrements sur le domaine parent.
Ce que vérifient SPF, DKIM et DMARC
| Mécanisme | Publié sur | Le destinataire vérifie | Domaine concerné |
|---|---|---|---|
| SPF | TXT sur example.com | L’adresse IP du serveur d’envoi figure-t-elle dans la liste ? | Expéditeur d’enveloppe (MAIL FROM, visible ensuite dans Return-Path) |
| DKIM | TXT sur selector._domainkey.example.com | La signature se vérifie-t-elle avec la clé publiée ? | Domaine signataire indiqué dans d= |
| DMARC | TXT sur _dmarc.example.com | SPF ou DKIM a-t-il réussi pour un domaine aligné sur le From ? | Le domaine du From, celui que voit le lecteur |
SPF et DKIM peuvent tous deux réussir pour un domaine que le lecteur ne voit jamais. DMARC comble cet écart avec l’alignement : un message passe lorsque SPF ou DKIM réussit pour un domaine aligné sur le domaine du From, et une seule réussite alignée suffit. En mode relâché, le mode par défaut, il suffit que les deux partagent le même domaine organisationnel : bounce.example.com est donc aligné avec example.com. En mode strict, ils doivent être identiques.
Un service d’envoi de newsletters fictif montre pourquoi c’est important. Il envoie en tant que news@example.com, mais utilise comme expéditeur d’enveloppe son propre domaine de retour, example.net. SPF réussit pour example.net, qui n’est pas aligné : DMARC ne passe donc que si le service signe en DKIM avec d=example.com.
Interroger les enregistrements avec dig ou nslookup
dig (Linux, macOS) ou nslookup (Windows) suffisent :
dig +short TXT example.com
dig +short TXT _dmarc.example.com
dig +short MX example.com
nslookup -type=TXT _dmarc.example.comL’enregistrement SPF est le TXT qui commence par v=spf1 ; les jetons de vérification d’autres services se trouvent souvent à côté. L’enregistrement DMARC est le TXT placé sur _dmarc qui commence par v=DMARC1. Vérifiez SPF sur le domaine de l’expéditeur d’enveloppe, qui peut différer du domaine du From ; l’en-tête Return-Path d’un message reçu l’indique.
Les clés DKIM ne peuvent pas être listées de l’extérieur, car chacune se trouve sous un sélecteur. Lisez les valeurs s= et d= de l’en-tête DKIM-Signature d’un message que vous avez envoyé, puis interrogez ce nom, par exemple dig +short TXT s1._domainkey.example.com.
Après une modification, les résolveurs peuvent servir l’ancienne réponse jusqu’à l’expiration de son TTL. Pour voir ce qui est publié à l’instant, trouvez les serveurs faisant autorité avec dig +short NS example.com et interrogez-en un directement : dig +short TXT example.com @ns1.example.net. Envoyez ensuite un vrai message vers une boîte que vous contrôlez et lisez son en-tête Authentication-Results. Il indique ce que le destinataire a décidé pour SPF, DKIM et DMARC, et c’est ce résultat qui compte.
Lire un enregistrement SPF
v=spf1 ip4:192.0.2.10 include:_spf.mail.example.net -allLes mécanismes sont évalués de gauche à droite, et le premier qui correspond décide du résultat. Chacun peut porter un qualificatif : + réussite (par défaut), - échec, ~ échec atténué (softfail), ? neutre.
| Terme | Correspond quand | Requête DNS |
|---|---|---|
ip4: / ip6: | L’adresse IP se trouve dans la plage indiquée | Non |
a / mx | L’adresse IP appartient au domaine ou à l’un de ses hôtes MX | Oui |
include: | L’enregistrement de l’autre domaine renvoie une réussite | Oui, plus toutes les requêtes qu’il contient |
exists:, ptr, redirect= | Moins courants ; la RFC 7208 déconseille ptr | Oui |
all | Toujours ; fixe le résultat pour tout serveur non reconnu avant | Non |
L’ANSSI recommande de configurer SPF pour les domaines de messagerie, tout en rappelant dans son guide sur l’interconnexion d’un système d’information à Internet que le protocole n’est pas infaillible face à l’usurpation : un serveur autorisé mais partagé, ou compromis, passe le contrôle. SPF seul ne suffit donc pas ; DKIM et DMARC le complètent.
~all ou -all
~all indique que les serveurs non listés ne sont probablement pas autorisés, et les destinataires ne devraient pas rejeter sur ce seul motif. -all indique qu’ils ne sont pas autorisés ; la suite relève de la politique propre au destinataire. Les deux sont défendables, et le BSI allemand accepte l’un comme l’autre. La RFC 9989 ajoute une mise en garde : avec -all, un destinataire qui vérifie SPF tôt dans la session SMTP peut rejeter un message qu’une signature DKIM alignée aurait fait passer, typiquement un message transféré, et ce rejet n’apparaît jamais dans les rapports DMARC. ?all, ou l’absence de all, ne dit rien des serveurs non listés. +all fait réussir n’importe quelle adresse IP d’Internet ; ne le publiez jamais.
La limite des 10 requêtes DNS
Les destinataires évaluent au plus 10 termes qui déclenchent une requête DNS, y compris ceux des enregistrements inclus (section 4.6.4). Au-delà, le résultat est permerror, et SPF ne peut plus aider un message à passer DMARC. Une limite distincte vise les requêtes qui ne renvoient aucune réponse : au-delà de deux, le résultat devrait aussi être permerror. Un enregistrement qui affiche quatre termes peut dépasser la limite si les enregistrements inclus contiennent eux-mêmes des inclusions : comptez de façon récursive. Pour revenir sous la limite, retirez les services que vous n’utilisez plus, écrivez en ip4/ip6 les adresses que vous maîtrisez, et déplacez les services à gros volume vers leur propre sous-domaine de retour, avec son propre enregistrement SPF. L’aplatissement (flattening), qui recopie les plages IP d’un prestataire dans votre enregistrement, devient faux dès que le prestataire les modifie.
Un seul enregistrement par nom
Deux enregistrements TXT commençant par v=spf1 sur un même nom produisent un permerror : fusionnez-les. Un enregistrement de plus de 255 caractères se publie dans un seul TXT sous forme de plusieurs chaînes entre guillemets, que les destinataires concatènent sans espace. SPF ne s’hérite pas non plus : un enregistrement sur example.com ne couvre pas mail.example.com, et chaque nom utilisé comme expéditeur d’enveloppe a besoin du sien.
Lire un enregistrement DMARC
DMARC est désormais défini par la RFC 9989 (mai 2026), une spécification de l’IETF publiée sur la voie de normalisation (Standards Track), qui remplace la RFC 7489. L’enregistrement se trouve toujours sur _dmarc et commence par v=DMARC1 :
v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@example.com; adkim=r; aspf=r| Balise | Signification |
|---|---|
v=DMARC1 | Doit être la première balise, sinon tout l’enregistrement est ignoré |
p | none (observation seulement), quarantine (traiter comme suspect) ou reject ; un enregistrement sans p vaut none |
sp / np | sp pour les sous-domaines existants, np pour les sous-domaines inexistants ; np se replie sur sp, puis sur p |
rua | Adresse des rapports agrégés ; sans elle, aucun rapport n’est envoyé |
adkim / aspf | Alignement r relâché (par défaut) ou s strict |
t=y | Nouveau : demande aux destinataires d’appliquer le niveau inférieur à la politique publiée (reject traité comme quarantine, quarantine comme none) |
pct | Supprimée ; la RFC note que les valeurs autres que 0 et 100 étaient appliquées de façon inégale |
Un enregistrement sur example.com couvre aussi les sous-domaines qui n’en ont pas ; les destinataires le trouvent par ce que la RFC 9989 appelle un parcours de l’arborescence DNS (DNS Tree Walk). Les destinataires qui envoient des rapports agrégés les livrent sous forme de fichiers XML, en général quotidiens, qui listent les adresses IP ayant envoyé au nom de votre domaine et leurs résultats. Si rua pointe vers un autre domaine organisationnel, par exemple un service d’analyse des rapports, ce domaine doit publier un enregistrement TXT comme example.com._report._dmarc.reports.example.net commençant par v=DMARC1 (RFC 9990, section 4), faute de quoi les destinataires ignorent l’adresse.
De none à reject
- Listez tous les services qui envoient au nom du domaine : messagerie, newsletter, CRM, facturation, support, formulaires du site.
- Publiez
p=noneavecruaet lisez les rapports. - Corrigez chaque source légitime jusqu’à ce qu’elle passe avec alignement, de préférence via DKIM, qui survit en général au transfert, contrairement à SPF.
- Passez à
quarantine, éventuellement avect=yd’abord, puis envisagezreject.
Selon la RFC 9989, les domaines dont les utilisateurs écrivent sur des listes de diffusion NE DEVRAIENT PAS publier reject ; ceux qui le veulent malgré tout devraient d’abord passer au moins un mois en none, puis autant en quarantine, en comparant les résultats. Tout domaine qui publie reject DOIT signer son courrier avec DKIM. Le BSI allemand, dans sa directive technique TR-03182, est plus strict : un domaine expéditeur DEVRAIT exiger reject. Un domaine réservé aux factures et aux notifications n’est pas dans la même situation qu’un domaine que vos équipes utilisent sur des listes de diffusion. La RFC 9989 demande aussi aux destinataires de ne pas rejeter sur la seule base de p=reject, tout en reconnaissant qu’en pratique, les messages de liste dont la ligne From est restée inchangée sont souvent rejetés.
Les domaines qui n’envoient pas d’e-mails
Les domaines parqués, ceux réservés pour protéger une marque contre les fautes de frappe ou les déclinaisons (la version .com, .eu ou .be d’une marque en .fr, par exemple) et ceux qui ne servent qu’à rediriger peuvent tout de même apparaître dans une ligne From falsifiée. La RFC 7208 qualifie de bonne pratique bien établie la publication d’un enregistrement SPF pour les domaines qui n’envoient pas de courrier. Un jeu complet pour un domaine parqué fictif :
example.net. TXT "v=spf1 -all"
_dmarc.example.net. TXT "v=DMARC1; p=reject; rua=mailto:dmarc-reports@example.com"
example.net. MX 0 .L’enregistrement SPF n’autorise personne, et p=reject ne coûte rien ici puisqu’il n’y a aucun courrier légitime à perdre. Le MX nul de la RFC 7505 indique que le domaine n’accepte aucun courrier ; les rapports partent donc vers example.com, qui doit publier example.net._report._dmarc.example.com. Le BSI TR-03182 impose cette même combinaison pour les domaines inutilisés. La politique DMARC couvre les sous-domaines, mais pas SPF : donnez aussi un v=spf1 -all à tout sous-domaine qui possède son propre enregistrement A ou MX.
Ce qu’exigent Gmail, Yahoo et Outlook.com des expéditeurs
| Fournisseur | Qui est un expéditeur en masse | Tous les expéditeurs | Les expéditeurs en masse doivent en plus |
|---|---|---|---|
| Gmail (comptes personnels) | Environ 5 000 messages par jour ou plus vers des comptes Gmail personnels, comptés par domaine principal ; le statut est définitif une fois atteint | SPF ou DKIM, DNS direct et inverse, TLS, taux de spam inférieur à 0,3 % | SPF et DKIM, DMARC (p=none accepté), alignement, désabonnement en un clic pour les messages marketing |
| Yahoo | Aucun seuil publié | SPF ou DKIM, DNS direct et inverse, taux de spam inférieur à 0,3 % | SPF et DKIM, DMARC qui passe avec au moins p=none, désabonnement en un clic traité sous 2 jours |
| Outlook.com (hotmail.com, live.com, outlook.com) | Plus de 5 000 messages par jour | Non traité dans cette annonce | SPF et DKIM qui réussissent, DMARC d’au moins p=none aligné sur SPF ou DKIM ; appliqué depuis le 5 mai 2025 |
Depuis novembre 2025, Gmail renforce progressivement l’application de ces règles, rejets compris. Les règles de Google visent les comptes Gmail personnels, pas les destinataires Google Workspace. Google et Yahoo exigent des clés DKIM d’au moins 1024 bits. Microsoft rejette le courrier qui ne respecte pas ses exigences avec le code 550 5.7.515. Les trois acceptent p=none, qui satisfait la règle mais n’exprime aucune préférence sur le courrier falsifié : voyez-y une étape, pas une configuration terminée.
MTA-STS et CAA : deux autres enregistrements à vérifier
MTA-STS (RFC 8461) protège le courrier entrant : il demande aux serveurs expéditeurs de ne livrer à vos hôtes MX que s’ils proposent TLS avec un certificat de confiance. Il lui faut un enregistrement TXT sur _mta-sts.example.com, par exemple v=STSv1; id=20261001000000Z;, et un fichier de politique à l’adresse https://mta-sts.example.com/.well-known/mta-sts.txt qui indique le mode, les noms MX et max_age. Commencez en mode testing, où les expéditeurs livrent quand même et signalent les échecs si les rapports TLS sont configurés sur _smtp._tls.example.com, puis passez en enforce. Changez l’id à chaque modification de la politique.
CAA (RFC 8659) désigne les autorités de certification (AC) autorisées à émettre des certificats TLS pour le domaine, par exemple CAA 0 issue "ca.example.net". Les AC publiques doivent le consulter avant toute émission ; il n’empêche pas une AC autorisée d’émettre un certificat à tort, et les navigateurs ne l’utilisent pas. Un enregistrement sur example.com couvre les sous-domaines qui n’en ont pas. Listez toutes les AC que vous utilisez, y compris celle de votre CDN, sinon des renouvellements peuvent échouer. Le guide TLS et en-têtes de sécurité détaille la partie certificats.
Erreurs SPF et DMARC courantes et comment les corriger
| Erreur | Effet | Correction |
|---|---|---|
Deux enregistrements v=spf1 sur un même nom | permerror | Les fusionner en un seul TXT, découpé en plusieurs chaînes s’il est long |
| Plus de 10 requêtes une fois les inclusions comptées | permerror | Retirer les inclusions inutiles, passer en ip4/ip6 |
+all, ?all ou pas de all | +all fait réussir tous les serveurs ; les autres n’excluent rien | Terminer par ~all ou -all |
| Un service ne réussit SPF que pour son propre domaine de retour | Pas d’alignement | Signature DKIM avec votre domaine |
DMARC publié sur le domaine lui-même, ou v=DMARC1 pas en premier | Introuvable ou ignoré | Publier sur _dmarc, version en premier |
rua vers un autre domaine sans autorisation | Aucun rapport | Ajouter l’enregistrement _report._dmarc |
p=reject alors qu’une source ne compte que sur SPF | Les messages transférés échouent | DKIM sur chaque source d’abord |
pct inférieur à 100 pour introduire une politique progressivement | Retiré de la norme ; les valeurs partielles étaient appliquées de façon inégale | Supprimer pct ; utiliser t=y pendant les tests |
Ce que le snapshot gratuit vérifie dans votre DNS de messagerie
Le snapshot gratuit de Sitelemetry exécute huit contrôles passifs sur une origine publique, sans inscription. Ce n’est pas un test d’intrusion, ni l’audit des six domaines. L’un des huit contrôles lit les enregistrements DNS de messagerie :
- Nom d’hôte exact. MX, TXT,
_dmarc,_mta-stset CAA sont interrogés sur le nom d’hôte saisi, sans repli sur le domaine parent. Un enregistrement absent sur www.example.com ne signifie pas qu’example.com n’est pas protégé. Pour faire lire les enregistrements de votre domaine de messagerie, saisissez ce domaine lui-même (example.com plutôt que www.example.com) ; ce domaine doit avoir une adresse IP (enregistrement A ou AAAA) pour que le snapshot produise un score. - SPF. Un enregistrement absent n’est signalé (gravité moyenne) que si l’hôte a des enregistrements MX.
+allest signalé comme risque élevé et?allcomme faible ;~allet-allne déclenchent rien. Plus de dix termes à requête DNS sont signalés (gravité moyenne), mais seuls les termes de l’enregistrement de premier niveau sont comptés, carinclude:n’est pas suivi. - DMARC. Un enregistrement absent n’est signalé (gravité moyenne) que si l’hôte a des enregistrements MX.
p=noneest signalé comme mode observation (faible), et quarantine ou reject comptent comme réussis.sp,pct,ruaet l’alignement ne sont pas évalués. - MTA-STS et CAA. L’absence d’enregistrement TXT
_mta-stsn’est signalée (faible) que si l’hôte a des enregistrements MX ; le fichier de politique n’est pas téléchargé. Tout enregistrement CAA compte comme réussi, et son absence donne un signal faible ; son contenu n’est pas comparé à votre certificat. - Non vérifiés : DKIM, les rapports TLS et DNSSEC.
Vous obtenez un score avec sa note, une note de durcissement, le nombre de signaux de risque et de contrôles réussis, et jusqu’à trois signaux, les plus graves en premier : un point sur la messagerie peut donc passer derrière un point sur le site web. Un nom sans adresse IP n’obtient pas de score. La checklist de mise en ligne passe en revue les huit contrôles, et le guide sur la sécurité des e-mails et du DNS couvre le suivi dans la durée.
Questions fréquentes
Mon enregistrement SPF doit-il finir par ~all ou -all ?
Les deux sont défendables. -all déclare les serveurs non listés non autorisés, ~all les déclare probablement non autorisés. La RFC 9989 note qu’avec -all, un destinataire qui vérifie SPF tôt peut rejeter un message transféré avant d’évaluer DMARC, même s’il porte une signature DKIM alignée valide. N’utilisez jamais +all.
Une politique DMARC p=none suffit-elle ?
Elle atteint le minimum DMARC que Gmail, Yahoo et Outlook.com fixent aux expéditeurs en masse et, avec rua, déclenche l’envoi des rapports. Elle n’exprime en revanche aucune préférence sur le courrier qui échoue : servez-vous-en pour repérer et corriger vos expéditeurs légitimes, puis passez à quarantine.
Un enregistrement DMARC sur example.com couvre-t-il les sous-domaines ?
Oui, pour les sous-domaines qui n’ont pas leur propre enregistrement DMARC : les destinataires appliquent sp aux sous-domaines existants et np aux sous-domaines inexistants si ces balises sont présentes, sinon p. SPF ne s’hérite pas : chaque nom qui envoie a besoin de son propre enregistrement SPF.
DKIM est-il encore nécessaire si SPF réussit ?
Oui. SPF échoue en général quand un message est transféré, alors que DKIM y survit le plus souvent. Gmail, Yahoo et Outlook.com exigent les deux des expéditeurs en masse, et la RFC 9989 impose DKIM aux domaines qui publient p=reject.
Le snapshot gratuit vérifie-t-il DKIM ?
Non. Les clés DKIM se trouvent sous des sélecteurs qui n’apparaissent que dans les vrais messages. Envoyez un message vers une boîte que vous contrôlez et lisez ses en-têtes DKIM-Signature et Authentication-Results.
Sources et lectures
- RFC 7208 : Sender Policy Framework (SPF)www.rfc-editor.org
- RFC 9989 : DMARCwww.rfc-editor.org
- RFC 9990 : rapports agrégés DMARCwww.rfc-editor.org
- ANSSI : recommandations relatives à l’interconnexion d’un système d’information à Internet (SPF, DKIM, DMARC)messervices.cyber.gouv.fr
- Google : consignes pour les expéditeurs d’e-mailssupport.google.com
- Yahoo Sender Hub : Sender requirements and recommendationssenders.yahooinc.com
- Microsoft : exigences d’Outlook pour les expéditeurs à gros volumetechcommunity.microsoft.com
- RFC 8461 : SMTP MTA Strict Transport Security (MTA-STS)www.rfc-editor.org
- BSI TR-03182 : Email Authentication (PDF)www.bsi.bund.de
Préparé par la rédaction de Sitelemetry. Les sources citées permettent d’approfondir chaque sujet.



