SPF, DKIM et DMARC sont les trois enregistrements DNS qui authentifient vos emails sortants et empêchent qu’ils soient marqués comme spam ou usurpés. Sans ces trois protocoles correctement configurés, vos emails finissent en spam chez Gmail et Outlook, et n’importe qui peut envoyer des emails en se faisant passer pour vous. Ce guide explique comment chacun fonctionne et comment les configurer pour votre domaine.
SPF : Sender Policy Framework
Le SPF déclare publiquement quels serveurs sont autorisés à envoyer des emails au nom de votre domaine. C’est un enregistrement DNS de type TXT que vous publiez sur votre domaine.
Exemple typique d’enregistrement SPF :
v=spf1 include:_spf.google.com include:_spf.mailgun.org ip4:51.91.239.203 -all
Décodé :
- v=spf1 : version SPF (toujours 1).
- include:_spf.google.com : autoriser les serveurs Google Workspace.
- include:_spf.mailgun.org : autoriser Mailgun (transactionnel).
- ip4:51.91.239.203 : autoriser une IP de serveur spécifique.
- -all : rejeter strictement tout autre expéditeur.
Quand un serveur Gmail reçoit un email se prétendant venir de votredomaine.com, il vérifie l’IP source contre votre SPF. Si l’IP n’est pas autorisée, l’email est rejeté ou marqué comme suspect.
DKIM : DomainKeys Identified Mail
Le DKIM ajoute une signature cryptographique à chaque email sortant. Le serveur émetteur signe l’email avec une clé privée. Le serveur récepteur vérifie cette signature avec la clé publique que vous publiez dans le DNS.
Un enregistrement DKIM ressemble à :
default._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ..."
Le préfixe (default ici) est appelé sélecteur — chaque service email a son propre sélecteur (Google utilise généralement google._domainkey, Mailgun utilise k1._domainkey, etc.).
Avantages :
- Garantit que l’email n’a pas été modifié en transit.
- Vérifie que l’expéditeur a bien autorité sur le domaine (par possession de la clé privée).
- Indépendant du chemin SMTP (utile quand l’email passe par plusieurs relais).
DMARC : Domain-based Message Authentication, Reporting and Conformance
DMARC est le chef d’orchestre : il dit aux serveurs récepteurs quoi faire quand un email ne passe pas SPF ou DKIM, et leur demande de vous envoyer des rapports.
Exemple d’enregistrement DMARC :
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:postmaster@exemple.com; pct=100"
Décodé :
- v=DMARC1 : version.
- p=quarantine : politique (none = observer seulement, quarantine = envoyer en spam, reject = rejeter).
- rua=mailto:… : adresse où recevoir les rapports agrégés (idéal pour monitorer).
- pct=100 : appliquer la politique à 100 % des emails (utile pour rollback progressif).
Comment configurer SPF/DKIM/DMARC sur son domaine
- Identifier vos services email : Google Workspace, Microsoft 365, Mailgun, Sendgrid, votre serveur SMTP, etc.
- Récupérer les valeurs SPF et DKIM de chaque service (documentation officielle).
- Connecter l’interface DNS de votre registrar (OVH, Gandi, Cloudflare, etc.).
- Créer un enregistrement TXT à la racine du domaine pour SPF (un seul SPF par domaine, qui combine tous les services).
- Créer les enregistrements DKIM (un par sélecteur de chaque service).
- Créer l’enregistrement DMARC sous _dmarc.votredomaine.com, en commençant par
p=nonepour observer sans bloquer. - Vérifier avec MXToolbox, mail-tester.com ou Google Postmaster Tools.
- Monter en sévérité progressivement : p=none → p=quarantine → p=reject.
Pour vérifier ces enregistrements via la commande nslookup :
nslookup -type=TXT votredomaine.com: montre le SPF.nslookup -type=TXT default._domainkey.votredomaine.com: montre le DKIM (sélecteur « default »).nslookup -type=TXT _dmarc.votredomaine.com: montre le DMARC.
Erreurs courantes à éviter
- Plusieurs SPF : un seul enregistrement SPF par domaine, sinon les serveurs récepteurs le considèrent comme invalide.
- SPF trop ouvert (
+all) : autorise n’importe qui à envoyer en votre nom = pire que pas de SPF. - Plus de 10 lookups DNS dans le SPF : limite imposée par la RFC. Au-delà, le SPF retourne PermError.
- DMARC en mode strict (p=reject) sans phase d’observation : risque de perdre des emails légitimes mal configurés.
- Oubli des sous-domaines : DMARC s’applique à la racine, mais il faut configurer aussi pour mail.votredomaine.com si vous y envoyez.
Pourquoi c’est devenu obligatoire en 2024-2026
Depuis février 2024, Gmail et Yahoo imposent SPF, DKIM et DMARC à tous les expéditeurs qui envoient plus de 5000 emails par jour vers leurs utilisateurs. Sans ces trois enregistrements correctement configurés, vos emails arrivent automatiquement en spam ou sont rejetés en silence.
Microsoft 365 (Outlook) suit progressivement la même politique. Pour un site professionnel, SPF/DKIM/DMARC ne sont plus optionnels : ils sont devenus le prérequis minimum pour communiquer par email.
Outils de diagnostic
- MXToolbox : vérifier SPF/DKIM/DMARC + blacklist IP serveur.
- mail-tester.com : envoyer un email de test, recevoir un rapport complet noté sur 10.
- Google Postmaster Tools : voir l’historique de délivrabilité vers Gmail pour votre domaine.
- dmarcian / dmarc.org : visualiser les rapports DMARC reçus.
FAQ : SPF, DKIM, DMARC
Quelle est la priorité d’installation : SPF, DKIM ou DMARC ?
SPF en premier (le plus simple), puis DKIM (un sélecteur par service email), enfin DMARC en mode observation. Ne jamais publier DMARC sans SPF + DKIM, sinon vos emails légitimes seront tous rejetés.
Combien de temps pour propager ?
5 minutes à 48 heures selon les TTL de vos enregistrements DNS. La plupart des registrars permettent de vérifier en quelques minutes via leur interface.
Faut-il un certificat SSL pour SPF/DKIM/DMARC ?
Non, SPF/DKIM/DMARC sont indépendants du SSL/TLS. Ils s’appliquent au protocole SMTP, le SSL/TLS s’applique au transport (sécuriser la connexion entre serveurs).
Mon hébergeur gère tout, j’ai vraiment besoin d’y toucher ?
Vérifiez avec nslookup -type=TXT votredomaine.com. Si vous voyez un SPF + un DKIM + un DMARC, c’est bon. Sinon, c’est à compléter.
Quelle différence entre DMARC p=quarantine et p=reject ?
p=quarantine envoie les emails non conformes dans le dossier spam du destinataire (avec une chance de récupération). p=reject les rejette purement et simplement avant arrivée. Reject est plus strict mais plus risqué si votre config est incomplète.