DMARC (Domain-based Message Authentication, Reporting and Conformance) is an email standard defined in RFC 7489. It lets a domain owner publish a DNS policy telling receiving inboxes what to do with unauthenticated mail: monitor (p=none), send to spam (p=quarantine), or reject outright (p=reject). It also produces aggregate reports so senders can see every source that is signing mail as their domain.
If SPF and DKIM are the locks on your email domain, DMARC is the security guard reading the log. It is the one authentication record that turns everything else from theoretical protection into enforced policy — and, since Feb 2024, a hard requirement for sending to Gmail and Yahoo at scale.
What is DMARC?
DMARC is the third pillar of modern email authentication, built on top of SPF and DKIM. It solves three problems those two protocols left open:
- What should receivers do when SPF or DKIM fail? Before DMARC, each receiver decided on its own. DMARC gives the sender a way to declare the desired policy.
- How do we prevent header-From spoofing? SPF checks Return-Path; DKIM signs any domain it wants. DMARC enforces alignment between the visible From: address and the authentication domain.
- How does the sender see what is happening? DMARC reports (
ruaaggregate +rufforensic) give the sender daily visibility into every source using its domain.
Before DMARC (2012), a phisher could send email that passed SPF for a lookalike domain, or was signed with DKIM by a completely different domain, and the visible From: still read as your CEO. DMARC closed that gap by requiring alignment between the authenticated domain and the visible sender.
Why DMARC matters
Four concrete reasons every marketing and IT team implements DMARC in 2026:
- Mandatory for bulk senders. Google and Yahoo require at least
p=noneDMARC for anyone sending 5,000+ messages/day since Feb 2024. Microsoft is rolling out similar rules. - Anti-phishing protection. An enforced DMARC policy blocks attackers from spoofing your domain in customer-facing phishing campaigns.
- Deliverability lift. A properly aligned DMARC record signals a well-run sender to inbox providers, improving Primary tab placement.
- Ecosystem visibility. DMARC aggregate reports reveal every third-party tool (invoicing, ATS, sales tools, ESPs) sending mail as your domain — often surprising, sometimes rogue.
How DMARC actually works
DMARC runs on every inbound email in a four-step check.
2. Fetches TXT at _dmarc.example.com
3. Checks whether the message passes SPF AND aligns, OR passes DKIM AND aligns
4. If neither aligns → applies the policy:
p=none → deliver + report
p=quarantine → send to spam
p=reject → block message entirely
Example DMARC TXT record
Type: TXT
Value: v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com; ruf=mailto:forensic@example.com; sp=quarantine; adkim=r; aspf=r; pct=100
What each tag means
- v=DMARC1 — protocol version (required first)
- p= — policy (none / quarantine / reject)
- rua= — where aggregate XML reports go
- ruf= — where forensic per-message reports go
- sp= — policy for subdomains
- adkim= / aspf= — strict (s) or relaxed (r) alignment
- pct= — percentage of failing mail the policy applies to
DMARC policies compared
| Policy | Behaviour on failure | When to use | Risk level |
|---|---|---|---|
| p=none | Deliver normally, send reports | Setup phase — monitor senders | Zero delivery risk |
| p=quarantine | Route to spam folder | Once all legitimate senders are aligned | Some misconfigured mail hits spam |
| p=reject | Block delivery entirely | Steady state — strongest protection | Any misalignment = lost mail |
| pct=25 | Apply policy to 25% of failures | Gradually ramping quarantine/reject | Reduced blast radius |
Real DMARC rollout examples
Four common paths to a fully enforced DMARC posture.
1. Startup with one ESP
v=DMARC1; p=none; rua=mailto:dmarc@startup.com
# Week 4: enforce for 25%
v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@startup.com
# Week 8: full enforcement
v=DMARC1; p=reject; rua=mailto:dmarc@startup.com
2. Enterprise with 20+ sending tools
A mid-size company discovers 22 tools sending as their domain in the first week of p=none reports: ATS, invoicing, CRM, sales engagement, ticketing, calendar tools. Each needs SPF/DKIM aligned before p=quarantine becomes safe. Timeline: 3-6 months.
3. Subdomain policy split
v=DMARC1; p=reject; sp=quarantine; rua=mailto:dmarc@example.com
4. Marketing subdomain isolated
Common pattern: send bulk marketing from mkt.example.com with its own DKIM/SPF/DMARC so an email deliverability incident does not damage the sender reputation of the root domain used for transactional mail.
DMARC vs SPF vs DKIM — how they combine
DMARC is not a replacement for SPF or DKIM — it is the enforcement layer that ties them together. All three run on every email in a modern inbox.
DMARC gives you
- Policy control (none / quarantine / reject)
- Alignment enforcement (From: matches auth domain)
- Aggregate reports on every sender
- Anti-spoofing at the domain level
- Prerequisite for BIMI logos
DMARC will NOT
- Sign your emails (that is DKIM)
- Authorise sending IPs (that is SPF)
- Stop lookalike-domain phishing (that is TLS + brand monitoring)
- Fix bad list hygiene or spam complaints
- Work without at least one of SPF or DKIM passing
7 best practices for DMARC rollout
- Start at p=none. Deploying reject on day one blocks legitimate mail from tools you did not know were sending as you.
- Use a DMARC report parser. Aggregate XML is dense — tools like Postmark DMARC, DMARC Digests, or Valimail turn it into a readable dashboard.
- Fix unauthenticated senders one at a time. Every tool needs its own SPF include + DKIM setup + alignment fix.
- Ramp with pct=. Move to quarantine at pct=10, then 25, 50, 100 before switching to reject.
- Publish a subdomain policy (sp=). Otherwise attackers spoof
invoices.example.comeven after your root is locked down. - Prefer relaxed alignment (adkim=r, aspf=r). Strict alignment (s) breaks common patterns like mail from
mail.example.comsigned forexample.com. - Never leave rua empty. Reports are the only way to catch drift when a new tool starts sending as you.
Every senior deliverability engineer has a horror story about a company that published p=reject on Friday and spent the weekend explaining why nobody received calendar invites, invoices, or password resets. Always start with p=none for at least 30 days.
Common DMARC mistakes to avoid
- Publishing multiple DMARC records — only one is valid; duplicates invalidate DMARC entirely.
- Forgetting subdomains (sp=) — attackers use unprotected subdomains for phishing.
- Ignoring aggregate reports — drift starts within weeks of new tools being adopted.
- Setting strict alignment too early — breaks marketing tools that sign with subdomains.
- No plan to move past p=none — monitor mode gives zero anti-spoofing benefit.
How theStacc helps with DMARC
DMARC rollouts stall because report parsing is tedious and every misconfigured tool becomes a fire drill. theStacc audits your DMARC record, parses aggregate reports for every sending source, and delivers a ranked plan to move you from p=none to p=reject without breaking legitimate mail. You get a per-tool alignment checklist, a ramp schedule with pct= milestones, and monitoring so drift never surprises you.
Frequently asked questions
DMARC is a set of rules published in DNS that tells receiving mail servers what to do when an email fails SPF or DKIM authentication. It also asks those receivers to send you reports so you can see who is sending mail on your behalf.
p=none (monitor only, deliver normally), p=quarantine (send failing mail to spam), and p=reject (block failing mail entirely). Most teams start at none, move to quarantine within 30-60 days, and finish at reject.
Yes, especially since Feb 2024 when Google and Yahoo made DMARC mandatory for anyone sending 5,000+ emails per day. Even below that threshold, DMARC prevents spoofing of your domain and is a signal of a well-run sender.
Publish a TXT record at _dmarc.yourdomain.com with v=DMARC1; p=none; rua=mailto:reports@yourdomain.com. Collect reports for 30-60 days, fix any unauthorised senders, then progressively tighten the policy to quarantine and reject.
DMARC passes only when the domain in the From header aligns with either the SPF Return-Path domain or the DKIM signing domain. Alignment can be relaxed (subdomains match) or strict (exact match). Most senders use relaxed.
