ZeroHookZeroHook
Back to Blog

Roll Out DMARC p=reject in 8 Weeks

dmarc p=reject rollout without breaking payroll, CRM, or marketing mail. Week-by-week checklist with pct= staging and aggregate report review.

ZeroHook TeamJun 22, 2026~4 min read
Roll Out DMARC p=reject in 8 Weeks

Your security lead wants p=reject on the board slide for Q2. Your ops lead remembers what happened the last time someone edited DNS on a Friday without telling finance. Both are right to care. A 55-person professional services firm in Manchester tried to jump from monitor-only DMARC straight to reject in one change. Payroll notifications from a legacy HR SaaS bounced for four days. The DMARC record was technically valid. The HR tool was never in the aggregate report review because nobody had turned on rua= reporting six months earlier. A dmarc p=reject rollout is not a single TXT edit. It is an eight-week (or longer) change management project with DNS at the end. This checklist assumes you already publish SPF and DKIM for your primary mail paths. If alignment is still broken, fix that first (see the alignment troubleshooting path on your internal wiki or our DMARC policy guide) before Week 3.

Before Week 1: Preconditions

Do not start the clock until these are true

  • DMARC record exists at _dmarc.yourdomain.com with rua=mailto:... pointing to an inbox someone reads
  • SPF and DKIM pass on test mail from Microsoft 365 or Google Workspace (check Authentication-Results)
  • You have a list of every ESP, CRM, ticket system, and SaaS that sends as your domain

Tools you need

  • DNS access (Cloudflare, GoDaddy, Route53, etc.)
  • Gmail or Microsoft mailbox for test sends
  • Aggregate report parser (spreadsheet, vendor tool, or manual XML review)
Warning
If aggregate reports show more than 5% unexplained failing volume, extend the discovery phase. Reject amplifies every hidden sender into a bounce.

Week-by-Week dmarc p=reject Rollout

1

Weeks 1-2 (discovery on p=none): Keep monitor-only policy. Collect RUA reports daily. Build a sender table: source IP, envelope domain, SPF result, DKIM result, message count. Fix alignment on the top three legitimate sources first.

see spoofing happen. You still cannot stop it.”

v=DMARC1; p=none; rua=mailto:[email protected]; adkim=r; aspf=r; pct=100
2

Week 3 (alignment hardening): Enable DKIM on every ESP still on SPF-only auth. Set custom return path / authenticated domain where the ESP supports it. Re-test until each stream shows dmarc=pass on a Gmail "Show original" check.

3

Week 4 (quarantine at 25%): Move policy to quarantine with partial enforcement:

v=DMARC1; p=quarantine; pct=25; rua=mailto:[email protected]; adkim=r; aspf=r

Watch helpdesk for mail in junk folders. Failures in reports should be mostly unknown spoof sources, not your billing system.

4

Weeks 5-6 (quarantine ramp): Raise pct= to 50, then 100 over two weeks. Any legitimate failure at pct=100 means stop and fix the sender before reject.

5

Week 7 (quarantine soak): Hold full quarantine at pct=100 for 14 days minimum. Run a forward test (Gmail forward to personal account) if your users rely on forwarding. Document any path that still fails.

6

Week 8 (reject staging): Begin reject at pct=25, not 100:

v=DMARC1; p=reject; pct=25; rua=mailto:[email protected]; adkim=r; aspf=r

Increase pct= weekly until 100. Keep rua= active permanently. Enforcement without reporting is how Manchester lost visibility on the HR SaaS.

“Reject is the destination. pct= is the speed limit. Ignore the speed limit and you will crash legitimate mail.”

What Breaks During Rollout (And Fixes)

Payroll and HR SaaS

Often sends with an old SPF include you forgot, or no DKIM. Fix in vendor admin, not by reverting policy.

Marketing ESP on default bounce domain

Mailchimp, Klaviyo, HubSpot: enable domain authentication so DKIM aligns. SPF-only ESP setups fail when you enforce.

Ticket system notifications

Zendesk, Freshdesk, Intercom: each needs DKIM CNAMEs published. They are frequent "mystery fail" lines in RUA reports.

Contractor SMTP relays

Anyone still sending through smtp.oldisp.com without your DKIM will fail under reject. Migrate them to M365/GW or sign mail at the relay.

Subdomains

If support.yourdomain.com sends mail but has no _dmarc.support record, set sp=reject on the org domain only after subdomain senders are mapped.

Pro Tip
After each DNS change, verify propagation:
dig TXT _dmarc.yourdomain.com +short

Frequently Asked Questions

Can we finish faster than eight weeks?

Sometimes, if you are single-ESP and single-mailbox-provider. Multi-vendor stacks should not compress quarantine soak. Auditors care that enforcement was staged, not that it was fast.

What if we need to roll back?

Drop to p=quarantine or p=none and lower pct= immediately. Keep rua= so you can see when failure volume drops. Rollback is normal during rollout, not failure.

Does p=reject help Gmail inbox placement?

Indirectly. It stops spoofing that damages domain reputation. It does not replace list hygiene or complaint rate control under 0.3% (Google bulk sender guideline, 2024).

Should sp= match p= on day one?

Yes, unless you have a documented subdomain exception. Attackers love sp=none on an otherwise strict org domain.

Key takeaways

1

dmarc p=reject rollout: none (weeks 1-2) → alignment fixes (week 3) → quarantine with pct= (weeks 4-7) → reject with pct= (week 8+).

2

Never skip aggregate report review. rua= is your rollout dashboard.

3

Quarantine at pct=100 for two weeks catches forward and SaaS edge cases before reject bounces them.

4

Legitimate mail must show dmarc=pass on every stream before you enforce. Policy does not fix alignment.

5

Keep reporting enabled after reject. New SaaS tools appear monthly.

Validate your current policy and tags at zerohook.org/dmarc-checker before Week 4, so quarantine does not surprise a sender you never knew existed.

Share this analysis

Help others discover this content

About the author

ZeroHook Logo
ZeroHook Team
Security Analysts

The ZeroHook Team breaks down DMARC alignment failures we see in production audits. Copy-paste fixes included where possible.

Fix DNS before the next audit
Provider-specific copy-paste fixes for Cloudflare, Route53, GoDaddy, and more.
Start free scan