Lire un rapport DMARC agrégé (XML) : champ par champ
Quand votre enregistrement DMARC contient une adresse rua, les grands fournisseurs de messagerie vous envoient des rapports. Ils sont en XML, rarement lisibles tels quels. Cette page décrit leur structure, d'après la RFC 9990 (mai 2026), qui remplace la partie « rapports » de la RFC 9990. Les champs que vous voyez dans un rapport dépendent de l'expéditeur : certains fournisseurs suivent encore l'ancien format.
Pour lire un fichier sans effort : l’analyseur de rapport (traitement local dans le navigateur).
Demander les rapports
Ajoutez la balise rua à l'enregistrement DMARC, par exemple v=DMARC1; p=none; rua=mailto:dmarc@exemple.fr. Si l'adresse est sur un autre domaine que le vôtre, ce domaine doit publier un enregistrement TXT d'autorisation sous _report._dmarc (RFC 9990, section 4).
La balise ri (intervalle entre rapports) est classée « historic » dans le registre de la RFC 9989, et la balise pct est supprimée : le mode test t=y la remplace en partie. Voir ce qui change avec la RFC 9989.
Le fichier reçu
Le rapport arrive en pièce jointe d'un e-mail. Le fichier XML « devrait » être compressé en GZIP (extension xml.gz, sinon xml). Son nom suit le modèle receveur!domaine!début!fin.xml.gz, où début et fin sont des horodatages Unix, par exemple mail.receiver.example!example.com!1013662812!1013749130.xml.gz.
Le sujet commence par Report Domain: suivi de votre domaine, puis Submitter: (le fournisseur qui envoie) et, en option, Report-ID:. Un rapport ne concerne qu'un seul domaine de politique. Si vous gérez trois domaines, comptez au moins trois rapports par fournisseur et par période.
Structure du XML
report_metadata:org_name(qui envoie le rapport),email,report_id,generator(facultatif),date_range(beginetend).policy_published: la politique que le destinataire a trouvée pour votre domaine (domain,p, puis selon les cassp,np,fo,adkim,aspf,testingpour la baliset, etdiscovery_methodqui vautpsloutreewalk). Vérifiez qu'elle correspond à ce que vous avez publié.record(répété) : une ligne par groupe de messages, avecrow,identifiersetauth_results.
Lire une ligne (record)
source_ip: l'adresse IP qui a envoyé les messages. C'est ce qui permet d'identifier un service d'envoi que vous aviez oublié.count: le nombre de messages concernés.policy_evaluated:disposition(ce qui a été appliqué), puisdkimetspf(valeurspassoufail: résultat après vérification d'alignement avec DMARC).identifiers:header_from(l'adresse affichée à l'utilisateur) etenvelope_from.auth_results: résultats bruts de SPF et de DKIM. Le domaine est indiqué pour les deux ; le sélecteur DKIM est désormais obligatoire dans le format de la RFC 9990. Pour SPF, seule l'identité MAIL FROM compte. Unpassici avec unfaildanspolicy_evaluatedsignale un défaut d'alignement : le domaine authentifié n'est pas celui de l'adresse affichée.reason(danspolicy_evaluated) : présent quand le receveur a appliqué autre chose que votre politique. Letypevautlocal_policy,mailing_list,trusted_forwarder,policy_test_modeouother. Une liste de diffusion ou un transfert explique souvent unfailque vous ne pouvez pas corriger chez vous.
Que chercher en pratique
- Les IP au volume
countélevé avecspfetdkimàfail: soit un service légitime non configuré, soit une usurpation de votre domaine. - Les services légitimes (newsletter, facturation, outil de ticketing) dont l'alignement échoue : à corriger avant de passer de
p=noneàquarantineoureject. - Une
policy_publisheddifférente de votre enregistrement : erreur de publication ou mauvais domaine.
Pour contrôler votre enregistrement, utilisez le vérificateur ; les erreurs fréquentes sont décrites sur la page Erreurs courantes.
Sources
- RFC 9990, « DMARC Aggregate Reporting », mai 2026, sections 3.1 à 3.5 et annexe C, https://www.rfc-editor.org/rfc/rfc9990 (lue en texte intégral le 2026-11-05).
- RFC 9989, annexe A.6 (retrait de
pct) et registre des balises, https://www.rfc-editor.org/rfc/rfc9989 (lue le 2026-11-05).