Analyze your domain's DMARC policy per RFC 7489, inspect reporting configuration, check SPF and DKIM alignment modes, and generate a ready-to-publish DMARC record.
Generate a ready-to-publish TXT record for _dmarc.yourdomain.com
Written by Ishan Karunaratne · Last reviewed:
DMARC (Domain-based Message Authentication, Reporting, and Conformance) is an email authentication protocol specified in RFC 7489 (published March 2015). It builds on two existing authentication mechanisms — SPF (RFC 7208) and DKIM (RFC 6376) — to give domain owners control over what happens to messages that fail authentication and visibility into who is sending email using their domain.
A DMARC record is published as a TXT record at _dmarc.yourdomain.com. It instructs receivers on three things: the policy to apply to failing messages, the alignment rules for SPF and DKIM identifiers, and where to send authentication reports.
When a receiving mail server gets a message, it performs the DMARC evaluation flow defined in RFC 7489 Section 4.2:
The receiver extracts the domain from the RFC5322.From header — this is the domain whose DMARC policy will be checked.
DNS lookup for TXT at _dmarc.domain. If no record is found, the receiver checks the organizational domain as a fallback.
SPF/DKIM must not only pass, but their authenticated identifiers must align with the From domain (relaxed or strict per aspf/adkim).
If both SPF and DKIM alignment fail, the receiver applies the policy (none/quarantine/reject) subject to the pct= sampling rate.
A message passes DMARC if either SPF passes with alignment or DKIM passes with alignment — both are not required. This is an important distinction from how SPF and DKIM work independently.
The p= tag is the most important part of a DMARC record, defined in RFC 7489 Section 6.3:
No action taken on failing messages. Reports are sent so you can observe traffic. This is the starting point for all DMARC deployments.
Failing messages are moved to the recipient's spam or junk folder. Used as an intermediate step to verify no legitimate mail is affected.
Failing messages are rejected during the SMTP transaction and never delivered. Maximum protection against spoofing and phishing.
Without aggregate report URIs, you fly blind — no visibility into authentication results, spoofing attempts, or misconfigured senders. Always include rua=.
RFC 7489 Section 6.2Enforcing reject without first collecting and reviewing aggregate reports will block legitimate email from third-party senders (ESPs, CRMs, support tools) that aren't covered by SPF/DKIM.
RFC 7489 Section 6.6.1Publishing more than one DMARC TXT record at _dmarc.domain causes all records to be discarded. Receivers treat this as no DMARC record at all.
RFC 7489 Section 6.6.3If rua= points to an address outside your domain, the receiving domain must publish an authorization TXT record. Without it, receivers will not send reports.
RFC 7489 Section 7.1DMARC reporting, defined in RFC 7489 Section 7, turns every participating mail receiver into a sensor for your domain. There are two report types:
Daily XML summaries (schema in RFC 7489 Appendix C) covering every IP that sent mail using your From domain. Includes SPF/DKIM pass/fail counts and applied policy per source IP.
Per-message failure details using AFRF format (RFC 6591). Can include headers or full message content. Many providers no longer send these due to privacy.
Moving too fast to p=reject without proper preparation is the most common mistake in DMARC deployment. The recommended path per RFC 7489 Section 6.6.1:
The core DMARC specification. Defines the policy record format, alignment rules, authentication flow, aggregate and forensic reporting, and deployment guidelines.
Defines the AFRF format used for DMARC forensic reports (ruf=). Extends the Abuse Reporting Format (ARF) from RFC 5965 with authentication failure details.
The SPF specification that DMARC builds upon. Defines which mail servers are authorized to send for a domain via DNS TXT records.
The DKIM specification that DMARC builds upon. Defines cryptographic message signing and verification using DNS-published public keys.
DMARC depends on SPF and DKIM being correctly configured. Use these tools to verify your complete email authentication setup: