Les trois résident dans le DNS sous forme d'enregistrements TXT. SPF liste les serveurs autorisés à envoyer du courrier pour un domaine, DKIM publie la clé publique qui vérifie les signatures des messages, et DMARC indique aux destinataires quoi faire quand aucun des deux n'est satisfait en alignement avec le domaine visible de From:. Le contexte se trouve dans L'authentification e-mail : SPF, DKIM et DMARC ; les tableaux ci-dessous suivent la RFC 7208 (SPF), la RFC 6376 (DKIM) et la RFC 7489 avec sa successeure de mai 2026, la RFC 9989 (DMARC). Les exemples utilisent example.com et des adresses de documentation.
Où réside chaque enregistrement
| Enregistrement | Nom DNS | Valeur d'exemple |
|---|---|---|
| SPF | le domaine lui-même : example.com |
v=spf1 mx include:_spf.example.net -all |
| Clé DKIM | <selector>._domainkey.example.com |
v=DKIM1; k=rsa; p=MIIBIjANBgkq... |
| DMARC | _dmarc.example.com |
v=DMARC1; p=quarantine; rua=mailto:[email protected] |
Mécanismes SPF (RFC 7208)
| Mécanisme | Correspond quand l'IP émettrice... | Requête DNS ? | Exemple |
|---|---|---|---|
ip4 |
figure dans l'adresse ou la plage IPv4 | Non | ip4:192.0.2.0/24 |
ip6 |
figure dans l'adresse ou la plage IPv6 | Non | ip6:2001:db8::/32 |
a |
est une adresse A/AAAA du domaine (ou de celui indiqué) | Oui | a, a:mail.example.com |
mx |
est une adresse de l'un des hôtes MX du domaine | Oui | mx, mx:example.net |
include |
satisfait l'enregistrement SPF d'un autre domaine | Oui | include:_spf.example.net |
exists |
fait résoudre le nom indiqué (macros développées) vers n'importe quel enregistrement A | Oui | exists:%{i}._spf.example.com |
ptr |
se résout à l'envers vers le domaine (lent ; la RFC déconseille de l'utiliser) | Oui | ptr |
all |
correspond toujours ; se place en dernier | Non | -all |
| Modificateur | Signification | Exemple |
|---|---|---|
redirect= |
Utilise l'enregistrement SPF d'un autre domaine quand rien d'autre n'a correspondu | redirect=_spf.example.com |
exp= |
Nom d'un enregistrement TXT contenant l'explication du rejet | exp=explain._spf.example.com |
Qualificateurs et résultats SPF
| Qualificateur | Résultat | Signification |
|---|---|---|
+ (par défaut) |
pass |
Expéditeur autorisé |
- |
fail |
Non autorisé : rejeter |
~ |
softfail |
Probablement non autorisé : accepter mais marquer |
? |
neutral |
Aucune déclaration |
Autres résultats : none (pas d'enregistrement SPF), temperror (délai DNS dépassé ; réessayer plus tard) et permerror (enregistrement défectueux, par exemple deux enregistrements v=spf1 ou trop de requêtes).
Limites : au plus 10 mécanismes et modificateurs provoquant des requêtes DNS (include, a, mx, ptr, exists, redirect) par vérification, en comptant les include imbriqués ; ip4, ip6 et all ne comptent pas. Au plus 2 requêtes peuvent ne rien renvoyer (« requêtes vides »). Le générateur d'enregistrements SPF compte les requêtes pour vous.
Macros (utilisées dans exists et exp) : %{s} expéditeur, %{l} partie locale, %{o} domaine de l'expéditeur, %{d} domaine courant, %{i} IP du client, %{h} nom HELO, %{v} in-addr ou ip6, %{p} nom validé de l'IP (à éviter).
Balises de l'en-tête DKIM-Signature (RFC 6376)
| Balise | Obligatoire ? | Signification | Exemple |
|---|---|---|---|
v |
Obligatoire | Version | v=1 |
a |
Obligatoire | Algorithme | a=rsa-sha256 (aussi ed25519-sha256, RFC 8463) |
d |
Obligatoire | Domaine signataire (SDID) | d=example.com |
s |
Obligatoire | Sélecteur ; la clé se trouve à s._domainkey.d |
s=mail2026 |
h |
Obligatoire | Champs d'en-tête signés, séparés par deux-points | h=from:to:subject:date |
bh |
Obligatoire | Condensé du corps canonisé (base64) | bh=47DEQpj8HBSa+/... |
b |
Obligatoire | La signature elle-même (base64) | b=dzdVyOfAKCdLXdJO... |
c |
Facultative | Canonisation en-tête/corps ; par défaut simple/simple |
c=relaxed/relaxed |
i |
Facultative | Identifiant d'agent ou d'utilisateur (AUID) ; par défaut @d |
[email protected] |
l |
Facultative | Longueur du corps signée (risqué : permet d'ajouter du contenu) | l=1024 |
q |
Facultative | Méthode de requête de la clé ; par défaut dns/txt |
q=dns/txt |
t |
Recommandée | Heure de signature, en secondes Unix | t=1791600000 |
x |
Recommandée | Heure d'expiration, en secondes Unix ; doit être postérieure à t |
x=1792204800 |
z |
Facultative | Champs d'en-tête copiés, pour le diagnostic | z=From:... |
La RFC 8301 a retiré rsa-sha1 : les signataires ne doivent pas l'utiliser, et les clés RSA doivent faire au moins 1024 bits (2048 recommandés).
Balises de l'enregistrement de clé DKIM (RFC 6376)
| Balise | Obligatoire ? | Signification | Exemple |
|---|---|---|---|
v |
Recommandée | Version ; doit venir en premier si présente | v=DKIM1 |
k |
Facultative | Type de clé ; par défaut rsa |
k=ed25519 |
p |
Obligatoire | Clé publique (base64) ; vide signifie que la clé est révoquée | p=MIIBIjANBgkq... |
h |
Facultative | Algorithmes de hachage acceptés ; par défaut tous | h=sha256 |
s |
Facultative | Type de service ; par défaut * |
s=email |
t |
Facultative | Indicateurs : y test, s strict (le domaine de i= doit être égal à d=) |
t=s |
n |
Facultative | Notes pour les humains | n=rotated 2026-10 |
Une chaîne TXT contient au plus 255 caractères ; une clé de 2048 bits est donc publiée en plusieurs chaînes entre guillemets au sein d'un même enregistrement, que les résolveurs concatènent. Générez les clés et l'enregistrement avec le générateur d'enregistrements DKIM.
Balises DMARC
| Balise | Signification | Valeurs et valeur par défaut | RFC 7489 | RFC 9989 |
|---|---|---|---|---|
v |
Version, doit venir en premier | DMARC1 |
Obligatoire | Obligatoire |
p |
Politique du domaine | none, quarantine, reject |
Obligatoire | Recommandée (absente = none) |
sp |
Politique des sous-domaines | mêmes valeurs ; par défaut p |
Oui | Oui |
np |
Politique des sous-domaines inexistants | mêmes valeurs ; par défaut sp, puis p |
(RFC 9091) | Oui |
adkim |
Alignement DKIM | r souple (par défaut), s strict |
Oui | Oui |
aspf |
Alignement SPF | r souple (par défaut), s strict |
Oui | Oui |
rua |
Adresses des rapports agrégés | URI mailto:, séparés par des virgules |
Oui | Oui |
ruf |
Adresses des rapports d'échec | URI mailto: |
Oui | Oui |
fo |
Quand envoyer les rapports d'échec | 0 (par défaut), 1, d, s, séparés par deux-points |
Oui | Oui |
pct |
Pourcentage du courrier en échec auquel la politique s'applique | 0 à 100, par défaut 100 |
Oui | Supprimée |
t |
Mode test : appliquer un niveau en dessous de p |
y, n (par défaut) |
Non | Oui |
psd |
Marque un domaine de suffixe public | y, n, u (par défaut) |
Non | Oui |
rf |
Format des rapports d'échec | afrf (par défaut) |
Oui | Supprimée |
ri |
Intervalle des rapports agrégés en secondes | 86400 (par défaut) |
Oui | Supprimée |
Les destinataires rencontrent encore les deux générations ; pct=100 et t=n correspondent au comportement par défaut, donc un enregistrement sans l'une ni l'autre est interprété de la même façon partout.
Exemples d'enregistrements
| Objectif | Enregistrement |
|---|---|
| Domaine qui n'envoie aucun courrier | SPF v=spf1 -all, DMARC v=DMARC1; p=reject; sp=reject |
| Serveurs propres plus un prestataire | v=spf1 mx ip4:192.0.2.25 include:_spf.example.net -all |
| Première étape DMARC : surveiller | v=DMARC1; p=none; rua=mailto:[email protected] |
| Appliquer strictement, rapport quotidien | v=DMARC1; p=reject; adkim=s; aspf=s; rua=mailto:[email protected] |
| Clé DKIM Ed25519 | v=DKIM1; k=ed25519; p=<32-byte key in base64> |
Vérifiez ce qu'un domaine publie avec la recherche d'enregistrements DNS ou le vérificateur de délivrabilité des courriels, et voyez comment un message reçu s'en est sorti dans son en-tête Authentication-Results avec l'analyseur d'en-têtes de courriel.