DMARC (Domain-based Message Authentication, Reporting and Conformance) est un standard qui vérifie que le domaine dans l'en-tête From: correspond à un enregistrement SPF ou DKIM valide. Deux avantages clés :
- Authentification : Seul le propriétaire du domaine peut définir la politique DMARC ; une politique stricte (p=reject) empêche les usurpateurs d'envoyer du spam en se faisant passer pour votre domaine.
- Rapportage : DMARC renvoie des rapports (RUA = Reporting URI of Aggregate) qui montrent quels messages passent/échouent, et pourquoi (SPF fail, DKIM fail, alignment). Vous ajustez ensuite votre configuration.
Depuis février 2024, Google et Yahoo exigent que tout expéditeur mass envoie des messages SPF+DKIM correctement alignés. DMARC n'est pas obligatoire, mais sa politique p=none permet de mesurer combien de messages échoueraient si vous aviez une politique stricte—information cruciale avant de passer à p=quarantine ou p=reject.
Prérequis : SPF et DKIM opérationnels
Avant de configurer DMARC, vous devez avoir :
- Un enregistrement SPF : TXT record
v=spf1 ... ~allqui liste les serveurs autorisés à envoyer depuis votre domaine. - Une signature DKIM : clé publique DKIM (TXT record) + signature générée par votre serveur SMTP ou ESP, qui prouve que le message n'a pas été altéré en transit.
Si SPF ou DKIM ne sont pas en place, DMARC aura peu d'effet. Pour vérifier, vous pouvez utiliser check.live-direct-marketing.online : envoyez un test, et les résultats vous montreront l'état SPF/DKIM/DMARC en quelques secondes.
Étape 1 — Créer votre première TXT DMARC (p=none)
Une politique DMARC au minimum :
v=DMARC1; p=none; rua=mailto:dmarc@example.comCette TXT doit être ajoutée au domaine DNS sous la forme _dmarc.example.com (avec un underscore devant « dmarc »).
Exemple complet pour example.com :
_dmarc.example.com IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com; ruf=mailto:dmarc-forensic@example.com; fo=1"Explications des paramètres optionnels :
ruf=mailto:...: rapports détaillés (forensic) des messages échoués. Utile pour déboguer, mais génère beaucoup de données ; à utiliser avec parcimonie.fo=1: format des rapports forensic.fo=0signifie « envoyer rapport seulement si TOUS les mécanismes échouent »,fo=1= « envoyer même si l'un d'eux réussit ».
dig _dmarc.example.com TXT ou nslookup pour vérifier que le record est bien propagé.Étape 2 — Analyser les rapports RUA et détecter les problèmes
Après quelques jours en p=none, vous commencerez à recevoir des rapports XML (généralement compressés avec gzip) montrant :
- Nombre de messages reçus par domaine/IP
- Combien passent DMARC (dkim=pass, spf=pass)
- Combien échouent (dkim=fail, spf=fail)
- Disposition actuellement appliquée : none
Erreurs courantes détectées :
- SPF misalignment : L'adresse IP du serveur SMTP n'est pas dans l'enregistrement SPF. Exemple : vous envoyez via
relay.esp.com, mais votre SPF inclut seulement les serveurs directs.
Solution : ajouterinclude:esp.comdans votre SPF. - DKIM misalignment : Le domaine de la signature DKIM (
d=) ne correspond pas au domaine From:. Exemple : message signé avecd=mail.example.com, mais From: =contact@example.com.
Solution : reconfigurer votre ESP/serveur SMTP pour signer avec le bon domaine, ou utiliser la politique de DMARCaspf=r(relaxed, accepte les sous-domaines). - Manque de SPF / DKIM : Certains messages envoyés via votre domaine ne passent par aucun mécanisme d'authentification. Exemple : forwarding automatique, modèles email mal configurés.
Solution : auditer le chemin des emails (qui les génère, comment ils sont envoyés).
Étape 3 — Escalader à p=quarantine
Une fois confiant que vos messages SPF/DKIM passent (80–90% minimum), passez à p=quarantine :
v=DMARC1; p=quarantine; rua=mailto:dmarc@example.comCette politique envoie les messages échoués dans le dossier Spam au lieu de les rejeter. Les destinataires ne verront pas un refus d'envoi, mais le message pourrait être indisponible ou peu visible.
Durée recommandée en quarantine : 1–2 semaines. Continuez à surveiller les rapports RUA pour détecter tout problème potentiel avant de passer à p=reject.
Étape 4 — Escalader à p=reject
Une fois complètement confiant (99%+ d'alignment), passez à p=reject :
v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:dmarc-forensic@example.com; pct=100Paramètres clés :
p=reject: les messages échoués sont refusés au niveau du serveur récepteurpct=100: appliquer la politique à 100% des messages
Attention : une politique reject peut avoir un impact immédiat sur la délivrabilité si elle est mal calibrée. Utilisez d'abord pct=10 ou pct=50 pour tester sur un pourcentage réduit, puis montez progressivement à 100.
Pièges courants et solutions
- Oublier de configurer rua : Sans adresse RUA, vous n'aurez pas de rapports. Vérifiez que l'adresse email reçoit bien les mails, sinon les rapports seront refusés et vous ne saurez pas pourquoi.
- SPF qui inclut trop de serveurs : Limite DNS de 10 lookups pour SPF ; si vous en dépassez (nombreux
include:), SPF échoue. Solution : consolider les includes ou utiliser DKIM. - From: domaine ≠ signing domaine : Si votre ESP signe avec un sous-domaine (mail.example.com) mais From: utilise le domaine racine (example.com), configurez DMARC avec
aspf=r(relaxed alignment). - Rapports forensic flooding : Si
fo=1génère trop de données, passez àfo=0(envoyer seulement si TOUS échouent) ou supprimezruf=.
Test pratique : vérifier votre DMARC en quelques secondes
Pour tester rapidement que votre DMARC fonctionne correctement :
- Allez sur check.live-direct-marketing.online
- Entrez votre domaine (example.com)
- L'outil génère une adresse test et vous envoie un email d'exemple
- Résultats en quelques secondes : SPF/DKIM/DMARC status, résultat auprès de 20+ fournisseurs (Gmail, Orange, Free, SFR, Outlook, Yahoo), screenshots des boîtes de réception réelles
Cet outil est gratuit, sans inscription requise, et très utile pour détecter les problèmes de configuration avant de monter en production sur des envois réels.
Qu'est-ce que l'alignment en DMARC ?
L'alignment vérifie que le domaine utilisé dans l'en-tête From: du message correspond au domaine qui a passé soit SPF, soit DKIM (ou les deux). Par exemple :
- SPF alignment : le domaine Return-Path: (celui qui a rejeté ou accepté SPF) correspond au From:
- DKIM alignment : le domaine d: de la signature DKIM correspond au From:
Sans alignment, même si SPF et DKIM passent, DMARC peut échouer. Vous pouvez configurer la politique DMARC avec aspf=r (relaxed SPF alignment) ou adkim=r (relaxed DKIM alignment) pour accepter les sous-domaines.
Pourquoi commencer par p=none et pas directement p=reject ?
Commencer par p=none vous permet d'observer sans danger. Si votre DMARC est mal configuré ou si vous avez des emails légitimes qui ne passent pas SPF/DKIM, une politique reject immédiate rejetterait ces messages en silence—et vous ne le sauriez que trop tard (clients manqués, réputation endommagée).
Avec p=none, vous recevez des rapports RUA détaillés qui montrent exactement quel pourcentage d'emails échouerait. Une fois confiant à 99%, vous pouvez escalader sans risque.
Quand devrais-je passer à p=reject ?
En général, attendez au minimum :
- 1–2 semaines en
p=none: observer les rapports - 1–2 semaines en
p=quarantineavecpct=10: tester sur un petit pourcentage - 1 semaine avec
pct=50, puis escalade à 100
Le passage à p=reject dépend aussi de vos volumes : si vous envoyez peu, et que tous vos emails passent SPF/DKIM, vous pouvez aller plus vite. Si vous avez beaucoup de sous-domaines ou d'intégrations tierces, allez lentement.