Skip to content
Authentication

How to roll out DMARC safely: from p=none to p=reject

DMARC deployment is a process, not a DNS change. The staged path from monitoring to full enforcement without breaking legitimate mail.

DMARC deployment is a process, not a single DNS change. Rushing the process breaks legitimate mail: services nobody remembered, third-party senders that were never configured for alignment, and subdomains with their own sending habits all surface only when the data starts flowing. The staged rollout exists to find them all before enforcement makes their mail disappear.

The deployment stages

From monitoring to full enforcement

  1. 1

    Publish p=none with rua

    This begins collecting aggregate reports. Make no other changes for two to four weeks and let the data accumulate.

    v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com
  2. 2

    Audit the reports

    Identify every IP address and service sending mail as the domain. For each one, determine whether it is legitimate or unauthorized.

  3. 3

    Fix alignment for legitimate senders

    For third-party services (ESPs, CRMs, transactional mailers), configure DKIM signing under the domain. SPF alignment with third parties is normally not achievable, because the envelope sender is the provider's domain rather than the customer's. DKIM signing is therefore the practical route to alignment.

  4. 4

    Move to p=quarantine

    Once reports show all legitimate sources passing with alignment, step the policy to quarantine. Monitor delivery metrics and reports closely for at least two weeks; failing mail now lands in spam, so problems become visible without becoming irreversible.

  5. 5

    Move to p=reject

    Once quarantine has run clean, change to p=reject. This is full enforcement: unauthenticated mail claiming the domain is refused outright.

  6. 6

    Keep monitoring

    Reports continue flowing at p=reject and become the early-warning system for broken DKIM keys, newly adopted SaaS senders, and spoofing attempts. The rollout ends; the monitoring loop does not.

A note on gradual enforcement and pct

Older guides describe ramping enforcement with the pct tag: p=quarantine; pct=10 to quarantine 10% of failing mail, then 25, 50, 100. Receivers implemented pct inconsistently, and DMARCbis retired the tag entirely. The reliable gradual path today is the staged policy progression itself, with the time spent at each stage, and the report review discipline within it, providing the gradualism that pct only pretended to.

How long each stage takes

The monitoring phase needs at least a full business cycle of the domain's mail: two to four weeks for most organizations, longer where monthly or quarterly sends exist (billing runs, statements, annual renewals). Every legitimate source must appear in the reports before enforcement, and rare senders take time to show up. The alignment-fixing phase is the variable one: one afternoon for a company with two sending services, months for an enterprise with dozens of departmental tools. The quarantine phase earns its keep in two to four clean weeks. Rushing any stage trades schedule pressure now for silently lost mail later, which is always a bad trade.

The readiness test for each step up

Before raising the policy, confirm

  • Every source in the aggregate reports is identified as legitimate or unauthorized
  • All legitimate sources pass DMARC with alignment, verified in report data over multiple weeks
  • Rare-cadence senders (billing, renewals, seasonal campaigns) have been seen passing at least once
  • Subdomain senders are inventoried and sp= is set deliberately
  • Someone owns the weekly report review, and knows how to roll the policy back

Reading the reports that drive every decision above is covered in the aggregate reports entry. One expectation to calibrate before enforcement: a small residue of failures from forwarded mail is normal and unavoidable, as explained in the limitations entry. The readiness test is that all identified legitimate infrastructure passes, not that the failure count reaches zero.

Frequently asked questions

Can I skip quarantine and go straight from none to reject?
Technically yes, and occasionally justified for domains with very simple sending (one ESP, clean reports). The quarantine stage exists because it converts mistakes into spam-foldered mail instead of vanished mail, which is the difference between an annoyance and an incident.
How do I roll back if enforcement breaks something?
Edit the record back to the previous policy; receivers pick up the change as DNS caches expire, so keep the record's TTL modest during rollout. Then fix the affected sender's alignment and step up again.
We only meet the bulk sender rules with p=none. Is that enough?
It satisfies the current Gmail, Yahoo, and Microsoft requirements, and it protects nothing: p=none takes no action against spoofed mail. Treat compliance as the starting line of the rollout, not the finish.
Who should own the DMARC rollout?
Whoever can see both sides: the infrastructure team controls DNS and reads reports, but marketing and product own sending tools that need alignment work. The rollouts that stall are the ones where these groups only meet after something breaks.

Key takeaways

  • Start at p=none with rua and collect two to four weeks of reports before changing anything
  • Fix alignment for every legitimate sender, usually via custom DKIM signing, before any enforcement
  • Step none to quarantine to reject, with clean report data as the gate for each move
  • Set sp= early: subdomain spoofing is the vector attackers reach for while the parent gets attention
  • pct-based ramping is retired with DMARCbis; time at each stage provides the gradualism instead
DMARC rollout guide: p=none to p=reject safely | Inbox Theory