How to Move DMARC to Quarantine Without Losing Mail

Moving DMARC to quarantine works safely when you stage the rollout with the pct= tag and watch aggregate reports before raising the percentage. Skip staging and real mail from vendors and forwarders lands in spam.

Your DMARC record has sat at p=none for months, and every aggregate report says your SPF and DKIM authentication passes cleanly. Now you want to move DMARC to quarantine so spoofed mail actually gets treated as suspicious instead of just logged. The risk: flip the policy too fast and your own newsletter tool, a forwarded ticket from a partner, or a mailing list you forgot about starts landing in spam right alongside the attackers you meant to block.

DMARC is the DNS record that tells a receiving mail server what to do when a message fails SPF or DKIM alignment — none, quarantine, or reject. EmailControl watches that policy, and the authentication checks behind it, so a bad move to quarantine turns up as an alert instead of a support ticket from a customer who never got your invoice.

What Does p=quarantine Actually Do to Your Mail?

p=quarantine tells a receiving server to treat a message that fails SPF or DKIM alignment as suspicious, usually routing it to the recipient's spam folder, instead of delivering it to the inbox or refusing it outright at the SMTP level. It is the middle setting between p=none, which only logs failures, and p=reject, which bounces the message before it is accepted.

The DMARC specification defines a pct= tag that applies the policy to only a share of mail, as set out in RFC 7489, section 6.3. A record of p=quarantine; pct=10 quarantines roughly one message in ten that fails alignment, while the rest still pass through under the old none behavior — so you watch the effect on a slice of traffic before it applies to everything. Every mailbox provider that publishes DMARC support, including the large webmail and enterprise platforms, honors pct= the same way, so the staging behavior is consistent no matter where your recipients read mail.

How Long Should You Stay at p=none Before Moving to Quarantine?

Stay at p=none until you have at least two to three weeks of aggregate (rua) reports showing every legitimate sending source — your mail server, marketing platform, helpdesk, and any forwarders — passes SPF or DKIM alignment consistently, not just most days. A source that fails intermittently at p=none will fail the same way at p=quarantine, except now the mail actually disappears into spam.

PolicyWhat happens to failing mailWhen to use it
p=noneDelivered normally; failure only recorded in reportsFirst 2-4 weeks, to inventory every sending source
p=quarantineRouted to spam folder, not the inboxOnce reports show your own sources pass consistently
p=rejectRefused at the SMTP level before deliveryAfter quarantine runs clean for several weeks at pct=100

The gap between p=none and p=quarantine is also where sender reputation starts to matter beyond DMARC itself. A source that lands in spam under quarantine tends to keep landing in spam even after you fix the underlying SPF or DKIM problem, because the mailbox provider's own filtering has already learned to distrust it — one more reason to fix alignment before you enforce, not after.

What Fields Does a DMARC Aggregate Report Actually Contain?

A rua report is an XML file, not a dashboard, and that is why most migrations stall at the reading stage rather than the DNS stage. Each record inside it lists a source_ip that sent mail claiming your domain, a count of how many messages came from it in that window, a disposition showing what your current policy did with them, and separate pass or fail results for SPF and DKIM alignment.

A source with a high count and a fail disposition is either a sending tool you have not authorized in SPF yet or a spoofing attempt — the two look identical in the report until you check whether you recognize the source_ip. Confirming that list, one source at a time, before you touch the policy is the actual work of the migration; the DNS record change itself is one line.

The Migration Sequence From None to Reject

The order matters more than the speed. Skipping a step is what causes a customer's mail to vanish without a bounce message anyone notices.

  1. Publish p=none with a rua= address and collect reports for at least two weeks.
  2. List every sending source the reports surface — mail server, CRM, helpdesk, marketing tool, any forwarding rule.
  3. Fix SPF or DKIM alignment for each source that fails, one at a time, and confirm the fix in the next report.
  4. Switch to p=quarantine; pct=10 and watch for a week.
  5. Raise pct= in steps of 25 to 50 only after each step shows zero unexpected quarantines.
  6. Hold at p=quarantine; pct=100 for two to three weeks before considering p=reject.

Once quarantine is stable, the same staged pct= approach applies to reject — the DNS record changes, the discipline of watching reports before raising the percentage does not. A domain that jumps from p=none straight to p=reject skips the one stage where a mistake is merely embarrassing instead of a lost invoice or a missed contract.

Reading the aggregate reports by hand at each step is where most migrations stall out, because the XML files are not built for a person to skim, and a domain sending from three or four sources can easily produce reports from a dozen different source_ip values once every mail relay and forwarder is counted. EmailControl parses DMARC results alongside your SPF and DKIM records on every scheduled check and flags a source the moment it starts failing at your current pct= level, before it becomes a pattern you find weeks later. The record syntax, selector list, and common failure causes are covered on the FAQ page.

What Breaks When You Move to Quarantine Too Early?

The honest objection to any of this is effort: staging a policy over five or six steps feels slower than just setting p=reject and being done with it. The cost of skipping the stages is real, though — a vendor tool your finance team depends on, or a mailing list a former employee set up years ago, can fail alignment silently at p=none and then start losing mail the moment you tighten the policy, with no error message pointing back at DMARC as the cause.

Monitoring does not require rewriting how your organization sends mail. EmailControl checks the policy on every scan — weekly on the free plan, daily on Pro, hourly on Agency, detailed on the pricing page — and an alert reaches you within 15 minutes of a check that finds a new failure, so the staged rollout stays a DNS change you control instead of a mystery your customers report first. The same check also folds DMARC status into your overall score, weighted alongside blacklist cleanliness and SPF or DKIM validity, so a quarantine migration that goes wrong shows up as a score drop, not just a buried report you forgot to open.

None of this requires handing over registrar access. EmailControl reads public DNS and the reports your own record already asks for — it never sends mail through your domain and never touches your mail server credentials, so adding it to the migration does not add a new system that can break your mail flow.

Start Monitoring Before You Flip the Policy

Add your domain and run a free check before you touch the DMARC record at all — it takes about a minute and shows every current sending source and whether it passes SPF and DKIM today, which is the exact list you need before you write p=quarantine into DNS. Start free monitoring and you will see the same report EmailControl checks on every scheduled scan afterward.

Frequently asked questions

What is the difference between DMARC quarantine and reject?

Quarantine routes a message that fails SPF or DKIM alignment to the recipient's spam folder, so it still arrives but is flagged as suspicious. Reject refuses the message at the SMTP level before the receiving server accepts it, so it never arrives at all, not even in spam. Most domains move through quarantine first because it is reversible and visible in reports, while reject removes the message with no local trace to review.

What does the DMARC pct= tag do?

The pct= tag applies your policy to only a percentage of mail that fails alignment, instead of all of it. A record of p=quarantine; pct=10 quarantines about one message in ten that fails, letting you watch the real-world effect of the policy on a small slice of traffic before raising it toward 100. It is defined in RFC 7489 and supported by every major mailbox provider.

How often do DMARC aggregate reports arrive?

Most mailbox providers, including the major webmail and enterprise platforms, send one aggregate (rua) report per sending domain roughly every 24 hours, covering all mail they received from you that day. A single day of reports is not enough to judge a source reliably — wait for at least two weeks of reports before deciding a sending source is clean.

Can moving to DMARC quarantine block legitimate email?

Yes, if a legitimate sending source has not passed SPF or DKIM alignment and you move to quarantine before fixing it. The message is not deleted, it lands in the recipient's spam folder, but most people never check that folder for expected mail, so it functions as lost mail. Staging with pct= and reviewing reports before each increase is what prevents this.

Do I need to control every sending source before enforcing DMARC?

You need to identify every source first, but you do not need to own it directly — third-party tools like marketing platforms and helpdesks can be brought into alignment by adding their sending domains to your SPF record or enabling their own DKIM signing option. What you cannot skip is finding the source before you enforce, since an unidentified sender is the one that breaks silently.

Want to know the moment your domain lands on a blacklist? Start free monitoring — takes under a minute.