Mastering DMARC: Safeguarding Your Domain with Email Authentication
In brief
Master DMARC: how it builds on SPF and DKIM, what each tag does, the three policies, how to roll out safely to enforcement, and what RFC 9989 changed.

What DMARC is
DMARC — Domain-based Message Authentication, Reporting, and Conformance — is the email authentication control that ties SPF and DKIM to the address your recipients actually see. On their own, SPF and DKIM can each pass for a domain an attacker controls; neither protects the visible From: header. DMARC closes that gap by requiring that whichever check passed aligns with the From: domain, and by telling receivers what to do when nothing aligns. That is what stops exact-domain spoofing and the domain-based phishing built on it.
DMARC has also moved from optional to expected. Gmail, Yahoo, and Microsoft now require any domain sending roughly 5,000 or more messages a day to personal inboxes to publish a DMARC record, and non-compliant bulk mail is rejected rather than merely filtered.
How DMARC works
You publish one TXT record at _dmarc.yourdomain.com. When a receiver gets a message claiming to be from your domain, it runs three steps:
- Authentication. It checks whether the sending IP is authorized by your SPF record and whether the message carries a valid DKIM signature.
- Alignment. A pass only counts if the SPF or DKIM domain aligns with the visible
From:domain. This is DMARC's core idea — it's what stops an attacker from borrowing your address with mail that is technically well-signed for a domain they own. - Policy. If neither SPF nor DKIM passes and aligns, the receiver applies the action your policy requests.
The three DMARC policies
How email receivers handle messages that fail DMARC authentication under each policy.
The p= tag takes one of three values:
p=none— take no action, just send reports. This is monitoring mode: you learn who sends mail as you before enforcing anything.p=quarantine— deliver failing mail to the spam or junk folder, so a wrongly-failed message is still recoverable.p=reject— refuse failing mail outright, so it never reaches the recipient. This is full protection, and the target state for any domain that has finished monitoring.
none → quarantine → reject as confidence grows. For help choosing between the last two, see reject vs quarantine.
The tags that matter
A DMARC record is a set of tag-value pairs. The ones you'll actually use:
v— the version, alwaysDMARC1, and always first.p— the policy for the organizational domain (none,quarantine,reject).sp— an optional separate policy for sub-domains.rua— the address for aggregate reports: daily XML summaries of every source sending as your domain, with pass/fail counts.ruf— the address for failure (forensic) reports: near-real-time samples of individual failing messages. Support is uneven across receivers, so aggregate reports do most of the practical work.adkim/aspf— alignment mode for DKIM and SPF,r(relaxed) ors(strict).
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com. You can build a valid one without touching syntax using the DMARC record generator.
Note the report tags carefully:ruais aggregate,rufis failure/forensic. Older guides — and a lot of copy-pasted records — swap them. Aggregate reports (rua) are the ones you'll read day to day; see what an aggregate RUA report is and what a forensic RUF report is.
What RFC 9989 changed
For its first decade DMARC was defined by the Informational RFC 7489. In May 2026 the IETF published the DMARCbis revision as three Standards-Track documents — RFC 9989 (core protocol), RFC 9990 (aggregate reporting), and RFC 9991 (failure reporting) — which obsolete RFC 7489 and promote DMARC to a Proposed Standard.
Two changes matter in practice:
- The
pcttag was removed. It was ambiguously defined and receivers interpreted it inconsistently. For a staged rollout you now publisht=yalongside an enforcing policy: receivers report on the stricter policy but don't yet act on it. If you still havepct=10published, nothing breaks — receivers simply ignore the unknown tag — but new records should uset=y. - Organizational-domain discovery now uses a DNS Tree Walk instead of the Public Suffix List. Receivers climb the DNS tree from the sending sub-domain looking for a published record, which makes sub-domain policy far more predictable.
Rolling out DMARC safely
The four steps to publish a DMARC record and start monitoring results.
The whole point of starting at none is to avoid blocking your own mail. A safe sequence:
- Audit SPF and DKIM. Confirm every legitimate sender — internal servers, transactional providers, marketing platforms — passes at least one and aligns with your
From:domain. - Publish
p=nonewith anruaaddress you control. This starts the report flow without affecting delivery. - Read the aggregate reports for a full sending cycle. They surface forgotten senders — a billing platform, a helpdesk, a marketing tool — that still need SPF or DKIM fixed. The DMARC report guide explains how to read them.
- Tighten in stages. Fix each failing sender, then move to
quarantine, thenreject. Uset=yif you want receivers to report on the stricter policy before it takes effect.
Why it's worth the effort
- It stops exact-domain spoofing. At enforcement, attackers can no longer put your real domain in the
From:field — the most convincing form of phishing. - It gives you visibility. Aggregate reports show every service sending as your domain, often the first time an organization sees its full sending footprint.
- It protects deliverability. A domain that authenticates consistently earns better inbox placement, and DMARC at enforcement is a prerequisite for a BIMI logo in supporting inboxes.
Related reading
- What are DMARC, DKIM, and SPF?
- How to create a DMARC record
- DMARC reject vs quarantine: what's the difference?
Questions readers ask
Frequently asked questions

Written by
Taylor TabusaCo-Founder & Head of Business Development, Palisade
Taylor Tabusa is the co-founder and Head of Business Development at Palisade, helping managed service providers turn email security into a practical, valuable service.
More from Taylor →


