Skip to content

Set Up DMARC Without Losing Legitimate Mail

The none-to-quarantine-to-reject ladder, reading aggregate reports, and the two mistakes that silently drop your invoices. Records included.

Paper envelopes on a desk

Short answer

Publish DMARC at p=none with reporting, fix SPF/DKIM alignment using aggregate reports for weeks, then move to quarantine and finally reject. Skipping observe is how invoices vanish.

The ladder

none, then quarantine, then reject. Climb only when reports look clean.

Each step needs enough volume and time to see the real senders - not a guess from memory.

Readers skimming setup dmarc without losing mail often stop at definitions. The part that prevents incidents is the verification step after the change - and the habit of re-checking after the next deploy that touches the same layer.

Two silent-drop mistakes

Forgetting a marketing ESP in SPF, and enabling p=reject before all streams align.

Both look like "email is broken" to customers and "we were attacked" to support - they are self-inflicted.

Common failure mode for setup dmarc without losing mail: staging looks fine, production still serves the old config because a CDN, load balancer, or second vhost was never updated. Always verify the hostname customers hit.

Reading reports

Aggregate reports show sources and pass/fail rates. Use them as a checklist of senders to fix, not as a graph to admire.

If you cannot open the reports, you are not ready to leave p=none.

If this section on setup dmarc without losing mail becomes a recurring ticket, automate the check. Manual one-offs rot; a post-deploy assertion or weekly grade keeps the control honest.

Config to copy

v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain; adkim=s; aspf=s

Paste carefully. Test on staging first if the setting can lock users out.

What to do this week

  1. Publish DMARC p=none with rua reporting.
  2. Fix failing sources from aggregate reports for 2-4 weeks.
  3. Move to p=quarantine when clean; monitor support tickets.
  4. Only then consider p=reject.

Observe first. Reject last.

Run a free security grade on your domain · Pricing

Update log (1)

2026-07-02Editorial form rewrite for length and uniqueness.

Sources + verification

Practical guidance based on mainstream browser behavior, common reverse-proxy configuration, and widely published RFCs and vendor docs. Verify on your own stack with curl, browser devtools, and a re-scan after each change.

Keep reading

Breach SPF, DKIM, DMARC: Email Auth in Plain English 2026-07-01 Tooling Certificate Transparency: See Every Cert Issued 2026-05-21 Breach Attack Surface: What's Exposed and Who Counts It 2026-07-07