Contact

What is DMARC?

Definition

DMARC is an email authentication standard that lets a domain owner tie SPF and DKIM results to the visible From address, state what receivers should do with mail that fails (none, quarantine or reject), and receive reports about mail sent in the domain's name. The policy is a TXT record at the _dmarc subdomain. First specified in RFC 7489, it is now defined by RFC 9989, published in May 2026.

Also known as: Domain-based Message Authentication, Reporting and Conformance, DMARC record, DMARC policy, _dmarc, v=DMARC1

Tree of a DMARC check: aligned mail reaches the inbox, failing mail gets the none, quarantine or reject policy, plus aggregate reports

The gap DMARC closes

SPF authenticates the envelope sender's domain and DKIM authenticates the signing domain. Neither is tied to the From: address a reader actually sees. A spoofer can send mail that passes SPF and DKIM for their own domain while showing your address in From:. DMARC adds alignment: a message passes DMARC only when a passing SPF or DKIM result belongs to a domain that matches the From: domain.

  • Relaxed alignment (the default) accepts the same organizational domain, so a message signed by news.example.com aligns with From: [email protected].
  • Strict alignment requires an exact match.

Either aligned SPF or aligned DKIM is enough. Because forwarding routinely breaks SPF, aligned DKIM tends to be the result that carries a message through.

What the record looks like

The policy is a TXT record at the _dmarc label:

_dmarc.example.com.  IN  TXT  "v=DMARC1; p=quarantine; rua=mailto:[email protected]; adkim=r; aspf=r"
TagRole
pPolicy for failing mail: none (monitor only), quarantine (treat as suspicious), reject.
sp / npSeparate policies for subdomains, and for subdomains that do not exist in DNS.
ruaWhere aggregate reports should be sent.
adkim / aspfAlignment mode for DKIM and SPF: r relaxed, s strict.
tt=y signals testing mode: the owner does not yet want the policy fully applied.

Getting from none to reject

Publishing p=reject on day one risks bouncing legitimate mail from a forgotten invoicing tool or CRM. The usual path is gradual:

  1. Start with p=none and an rua address. Receivers send XML reports showing which IPs sent mail as your domain, in what volume, with which SPF and DKIM results.
  2. Fix every legitimate source you find so it signs with your own domain and is covered by SPF.
  3. Once legitimate traffic aligns, move to p=quarantine, then p=reject.

The percentage-based pct tag from RFC 7489 is gone in the new specification, replaced by the t flag; receivers will adopt the update at different speeds, so expect both behaviours for a while. Raw reports are tedious to read, and a report-processing service helps. Failure reports via ruf also exist, but many receivers do not send them for privacy reasons.

Where the specification stands

When DMARC was published as RFC 7489 in 2015, it was an Informational document rather than an IETF standard. RFC 9989, published in May 2026, obsoletes it and puts DMARC on the Standards Track, with reporting moved to companion documents (RFC 9990 and 9991). A notable change is how the organizational domain is found: instead of consulting the Public Suffix List, receivers perform a “DNS tree walk” up the domain hierarchy. The version tag is still v=DMARC1, so existing records keep working.

What Gmail and Yahoo require

Under the rules Google and Yahoo began enforcing in February 2024, bulk senders (Google's threshold is more than 5,000 messages a day to personal Gmail accounts) must publish a DMARC record and align the From: domain with either the SPF or the DKIM domain. Both providers accept p=none for this purpose. The requirement is having the record and alignment; moving to reject is a separate decision you make to protect your domain from spoofing.

Related terms

← Back to the glossary