DMARCDomain-based Message Authentication, Reporting & Conformance
DMARC (Domain-based Message Authentication, Reporting & Conformance) is an email-authentication standard, defined in RFC 7489, that tells receiving servers what to do with mail that fails SPF or DKIM, and emails the domain owner reports on who is sending under their name. It is published as one DNS TXT record, and it is what finally lets a domain say “reject anything that isn’t really from me.”
-
It is the only layer that protects your visible
From:address from spoofing -
Start at
p=noneto monitor, then tighten toquarantineandreject - Required for bulk senders to Gmail and Yahoo since February 2024
- A passing SPF or DKIM check still fails DMARC unless it aligns with your domain
How DMARC works
DMARC sits on top of two existing checks: SPF (did the message come from an IP the domain authorises?) and DKIM (does it carry a valid cryptographic signature from the domain?). On their own, neither check looks at the From: address your recipient actually sees. DMARC closes that gap with a rule called alignment.
For a message to pass DMARC, at least one of SPF or DKIM must pass and be aligned, meaning the domain it authenticated matches the visible From: domain. Alignment can be relaxed (the organizational domain must match, so mail.example.com aligns with example.com) or strict (an exact match is required). If both checks fail, or neither aligns, the receiver applies whatever policy you published.
The three DMARC policies
Your policy is set with the p= tag, and it is the single most consequential part of the record:
p=none: monitor only. Take no action on failures, but send me the reports. Every sender should start here.p=quarantine: treat failing mail as suspicious. Most receivers route it to the spam folder.p=reject: block failing mail outright at the SMTP layer, before it can reach the inbox. This is the only policy that actually stops exact-domain spoofing.
The intended path runs from none to quarantine to reject: begin in monitoring, read your aggregate reports until you are confident every legitimate source authenticates and aligns, then tighten. Jumping straight to p=reject before your reports are clean is the fastest way to block your own invoices and password resets.
Anatomy of a DMARC record
A DMARC record is a list of tag=value pairs in a single TXT record at _dmarc.yourdomain.com. A typical enforcing record looks like this:
v=DMARC1; p=reject; rua=mailto:dmarc@example.com; adkim=s; aspf=s; pct=100; fo=1
v=DMARC1: version. Required, and must come first.p=reject: the policy for the main domain.rua=mailto:…: where to send daily aggregate reports (the ones worth reading).adkim=s/aspf=s: require strict DKIM/SPF alignment (r= relaxed, the default).pct=100: apply the policy to 100% of mail (ramp with a lower number if you like).fo=1: request a failure sample whenever any underlying check fails.
Why DMARC matters for sender reputation
Since February 2024, Google and Yahoo require every bulk sender (anyone sending 5,000 or more messages a day to Gmail or Yahoo accounts) to publish a DMARC record of at least p=none, on top of passing aligned SPF and DKIM. Microsoft began enforcing the same baseline for high-volume senders to Outlook and Hotmail in 2025. Without a record, that mail is now liable to be rejected or sent straight to spam.
Beyond the mandate, DMARC protects the asset your whole reputation is built on: your domain. A published reject policy makes it dramatically harder for spammers to send phishing in your name, and exact-domain spoofing is one of the fastest ways to torch a previously good reputation. The aggregate reports are also the only place you can see every service sending as your domain, including shadow IT and long-forgotten vendors.
How DMARC decides what happens to a message
From: domain?SPF vs DKIM vs DMARC
| SPF | DKIM | DMARC | |
|---|---|---|---|
| What it checks | Which servers may send | The message is signed and unaltered | That SPF or DKIM aligns with From: |
| Mechanism | DNS list of IPs | Cryptographic signature | DNS policy + reports |
Sees the From: address? |
No | No | Yes, through alignment |
| Stops spoofing alone? | No | No | Yes, with p=reject |
By the numbers
none, quarantine, and reject.Common mistakes
p=none forevernone is a starting line, not a destination. If you never reach quarantine or reject, anyone can still spoof you.p=rejectnone first.From:. Authentication and alignment are two different tests.rua reporting addressFrequently asked questions
p=none) alongside aligned SPF and DKIM. Smaller senders aren’t mandated, but a DMARC record is still strongly recommended to prevent spoofing.From: address through alignment and tells receivers what to do when both fail. SPF and DKIM are the checks; DMARC is the policy and reporting layer on top.From: domain your recipient sees. If those organizational domains don’t match, DMARC fails despite a green SPF check. Fix it by DKIM-signing with your own domain, or by using a custom Return-Path.p=none and a valid rua address, collect at least two weeks of aggregate reports, confirm every legitimate source aligns, then move to p=quarantine and finally p=reject.