How to Fix DMARC Policy Enforcement Failure When p=quarantine and p=reject Conflict
Resolve DMARC policy enforcement failures when p=quarantine and p=reject conflict. Ensure inbox placement and sender reputation with actionable steps.
Why does a DMARC policy conflict between p=quarantine and p=reject cause delivery issues?
You send legitimate emails. Your SPF and DKIM pass. Yet some recipients never see them — or get them in the spam folder. Why? A DMARC policy that tells receivers to both quarantine and reject failed messages creates confusion, not control.
When you set both p=quarantine and p=reject in the same DMARC record, you’re telling receivers to do two contradictory things. Some will treat it as strict rejection. Others will fall back to quarantine. The result? Inconsistent handling — and inconsistent delivery outcomes.
Receivers interpret conflicting policies differently. One might block your email outright. Another might let it through but mark it as suspicious. This unpredictability damages sender reputation over time, especially with major inboxes like Gmail, Yahoo, and Outlook that rely heavily on DMARC signals.
Key takeaways
- Setting both p=quarantine and p=reject in a DMARC record creates ambiguous instructions that receivers handle inconsistently.
- Receivers may apply quarantine or reject based on their internal logic, leading to unpredictable inbox placement for legitimate mail.
- Reputational risk increases when policies conflict, as inconsistent enforcement undermines trust signals across email platforms.
What happens when p=quarantine and p=reject appear in the same DMARC record?
If your DMARC record contains both p=quarantine and p=reject, it's invalid according to RFC 7483. DNS resolvers will either ignore the entire policy or fall back to default behavior—usually treating it as if p=quarantine were set. This leads to inconsistent enforcement across email providers and can undermine trust in your domain’s authentication. You should only specify one policy action at a time: either none, quarantine, or reject.
Why multiple enforcement actions break DMARC
DMARC is designed around a single policy decision: how to handle messages that fail alignment checks. The standard explicitly states that only one of p=none, p=quarantine, or p=reject should appear in a record. Including more than one creates ambiguity that DNS resolvers cannot resolve.
When a resolver encounters conflicting directives, it typically discards the entire policy. This means your domain might be treated as if no DMARC record exists, leaving it vulnerable to spoofing and reducing inbox placement for legitimate mail.
How providers handle invalid DMARC records
Not all email providers react the same way when they find a malformed DMARC record. Some may apply a default of quarantine, while others might ignore the record entirely and rely on SPF and DKIM alone. This inconsistency means your domain could be flagged as suspicious by one provider and trusted by another—exactly what DMARC is meant to prevent.
Major providers like Google and Microsoft use a strict parsing model based on the RFC. Their systems will reject malformed records, meaning you lose the protection of DMARC enforcement even if you intended to use reject.
Think of it like a traffic light: you can't have both “stop” and “go” active at once. DMARC works the same way—your domain needs a single, unambiguous instruction.
To verify your DMARC record is valid, test it using a tool like MXToolbox or DMARC Analyzer. These tools flag syntax issues before they cause real-world delivery problems.
If you're managing your sending list, use MailTester’s bulk verification to test your sender addresses in real-time. It checks for invalid syntax, catch-all issues, and deliverability risks—helping you avoid configuration issues like conflicting DMARC policies before they affect your deliverability.
The correct way to enforce DMARC policies: one action per domain
Set only one DMARC enforcement policy per domain—choose either p=quarantine or p=reject, never both. Using both causes conflicts, inconsistent enforcement, and can block legitimate emails. Start with p=quarantine to monitor alignment and catch false positives. Once you confirm all valid senders are authenticated, switch to p=reject for full protection.
How to roll out DMARC safely
- Start with
p=quarantineonly. This allows emails from unauthenticated sources to land in spam folders instead of being rejected outright. It gives you visibility into alignment issues without breaking delivery. Use it during the initial setup phase. DMARC RFC 7483 defines this as a safe, monitoring-first approach. - Verify all legitimate senders are authenticated. Test every sending platform—marketing tools, CRM systems, transactional services—using real message testing. Run inbox placement tests to see whether DMARC-aligned emails reach inboxes or get marked as spam.
- Check for false failures with a bulk email validation. Use a service like MailTester’s bulk list verification to scan your email database. It flags unauthenticated senders, catch-all addresses, and invalid domains. This helps you identify and fix issues before enforcing
p=reject. - Transition to
p=rejectonly after confirmation. Once you’ve validated that all legitimate senders are properly signed with SPF and DKIM, and no legitimate emails are failing, update your DMARC record top=reject. This enforces policy and prevents spoofing. - Monitor results continuously. Use DMARC reports (from MxToolbox or similar tools) to track enforcement impact. Look for drops in delivery and unexpected bounces. If problems arise, revert to
p=quarantineand investigate.
Why mixing enforcement modes breaks things
DMARC policy enforcement is binary: it applies one rule per domain. If both p=quarantine and p=reject appear in the same record, DNS resolvers treat the record as invalid or prioritize the first. This leads to inconsistent results. Some receivers apply quarantine, others reject, and some ignore it entirely. The result? Unpredictable delivery, even for trusted sources.
There is no technical advantage to listing multiple policies. The only outcome of duplication is confusion and risk. Stick to one clear instruction.
“A single, consistent policy is the foundation of effective DMARC implementation.” — Return Path, Deliverability Trends Report
Once you lock in a single enforcement mode, you can scale confidence. Monitoring with p=quarantine builds trust. Enforcing with p=reject protects your brand. But never mix them. One domain. One action.
How to detect DMARC policy conflicts in your DNS record?
You can detect DMARC policy conflicts by checking your DNS record using a dedicated DMARC analyzer. If your record contains both p=quarantine and p=reject, it’s malformed—this conflict violates DMARC’s specification and can cause unpredictable enforcement. Use tools like MxToolbox or Spamhaus to fetch and validate your record in real time.
Step-by-step detection process
- Go to MxToolbox’s DMARC analyzer and enter your domain to check the current DMARC record.
- Look for the
p=tag in the output. If it shows bothquarantineandreject, your policy is conflicting. - Check the full DNS record using RFC 7483 — which specifies that only one enforcement action is allowed per policy.
- Run a test with a tool like Spamhaus Domain Lookup to validate the record’s structure and ensure it resolves correctly across DNS servers.
Fix the conflict and revalidate
- Access your domain registrar’s DNS management console (e.g., Cloudflare, GoDaddy, AWS Route 53).
- Locate your DMARC TXT record. It usually starts with
v=DMARC1;. - Remove either
p=quarantineorp=reject— keep only the enforcement action you want to enforce. - Save the updated record. Propagation can take up to 48 hours, but most resolvers pick up changes within minutes.
- Re-test the record using MxToolbox or Spamhaus to confirm the conflict is resolved.
- Monitor your email deliverability with a tool like inbox placement tester to ensure policies are now applied as intended.
DMARC is only effective when it’s unambiguous. A conflicting policy defeats its purpose.
Running a test before enabling strict enforcement helps avoid sending failures due to misconfigurations. If you're managing a large mailing list, consider verifying addresses with bulk email verification to ensure your sender reputation stays clean. That way, your DMARC enforcement works on solid data—not on invalid or risky addresses.
How to test if fixing the policy improves inbox delivery?
After adjusting your DMARC policy to resolve conflicts between p=quarantine and p=reject, test delivery by sending sample emails to real inboxes across Gmail, Yahoo, and Outlook before and after the change. Use inbox-placement tools to measure how your messages land—especially in the primary inbox versus spam folders. Watch for shifts in bounce rates and complaints in your ESP dashboard to confirm improvements aren’t offset by new delivery issues.
Step-by-step verification process
- Send pre-fix test emails using the same content and headers. Use your existing email campaign setup to send identical messages to known real inboxes across Gmail, Yahoo, and Outlook before adjusting your DMARC policy. This creates a baseline for comparison.
- Use MailTester’s inbox-placement tester to simulate delivery across major providers. Go to MailTester’s inbox placement tool and run tests on your domain and message headers. It checks how Gmail, Yahoo, and Outlook classify your email based on current DNS records, including DMARC alignment.
- Adjust your DMARC policy to remove conflicting directives. Ensure only one policy directive is active: either
p=quarantineorp=reject. Avoid ambiguous or conflicting configurations. Use tools like MXToolbox to validate your DNS record syntax. - Run post-fix inbox placement tests with identical messages. Repeat the inbox placement tests using the same sender, subject line, and content. Compare the results with your pre-fix test to see if the new policy improves inbox placement or reduces spam flags.
- Monitor your ESP’s delivery metrics for changes. Check your email service provider’s dashboard for increases in bounces, complaints, or hard fails. A drop in complaints and better inbox placement post-change indicates the fix is working.
- Validate long-term consistency with regular audits. DMARC policies don’t correct misconfigured SPF or DKIM records. Double-check that all authentication methods are properly configured and aligned to avoid future conflicts. Review reports monthly via DMARC aggregate reports (RUA) or tools like DMARCian.
What to expect and why it matters
Conflicting DMARC policies can lead to inconsistent enforcement across domains and providers. When p=quarantine and p=reject appear together, some mail systems ignore the policy altogether. Fixing the policy ensures consistent, predictable handling. According to RFC 7483, DMARC policies should be unified—no ambiguous combinations.
Even after fixing the policy, never assume delivery improves. Some providers use multiple signals beyond DMARC. Always verify placement with real-world sending. If your message lands in spam after the fix, check SPF alignment, DKIM signing, and content reputation.
Why do conflicting policies often occur in complex email environments?
You often see conflicting DMARC policies—like p=quarantine and p=reject—when different teams, tools, or systems configure DMARC independently, sometimes unaware of each other’s settings. One department sets a strict policy, while another enables a more lenient one, leading to inconsistent enforcement. This creates ambiguity in recipient mail servers, which may default to the most permissive rule, undermining your security posture.
Multiple Senders, One Domain
Organizations using multiple email senders—marketing platforms, helpdesk tools, CRM systems—often don’t realize that each can independently specify a DMARC policy in DNS. If one system sets p=quarantine and another sets p=reject, the resulting DNS record may include both, or a newer version overwrites the old without coordination. This is especially common with tools that auto-generate DNS entries during setup.
Outdated Templates and Gateways
Legacy email gateways or outdated templates sometimes reference old DMARC configurations that never got updated. Even if a team has since set p=reject, some old templates may still rely on a previous p=quarantine setting. This divergence doesn’t show in most monitoring tools but can cause inconsistent rejection behavior across different mail providers.
Shared Infrastructure and Alignment Failures
When multiple systems share infrastructure—like a shared SMTP relay or email gateway—alignment checks (SPF, DKIM) can fail if the sending domain doesn’t align with the From domain. DMARC then evaluates the policy based on the domain that passes the checks. If one sender passes SPF but not DKIM, or the From domain differs, the policy might fall back to a less strict rule than intended. This creates unintended conflicts, especially in federated environments.
According to the IETF’s DMARC specification (RFC 7483), the policy applied is that of the highest priority record. But in complex setups, this doesn’t guarantee consistency—especially when records are managed by different teams or systems without oversight.
Let’s be clear: you can’t fix a conflict you don’t detect. The root cause isn’t always in your DNS—it’s in the flow of data across systems that don’t communicate. That’s why verifying your email infrastructure in real-world conditions matters.
Use inbox placement testing to see how your messages are treated across different providers, or run a single address verification to test how DMARC and alignment rules apply to a specific recipient. These tools help surface issues before they disrupt your deliverability.
How can you verify that your fixes are working without waiting weeks?
You can test DMARC policy enforcement changes immediately using real-time verification tools. Run individual addresses through the MailTester API before sending, scan your full list in bulk to catch misaligned or invalid domains, and use the in-app AI assistant to validate alignment and policy health instantly—no waiting for inbox placement reports or weeks-long feedback loops.
Test fixes at scale with real-time validation
- Use the MailTester real-time verification API to validate sender addresses instantly. You're not waiting for delivery or bounceback—test alignment, MX records, and policy status in under one second per address.
- Bulk verify your entire email list with MailTester’s bulk verification tool. Identify addresses with mismatched domains, missing SPF/DKIM, or catch-all configurations that could trigger DMARC failures under quarantine or reject policies.
- Check each sender’s envelope-to-header alignment. DMARC fails when the
Fromdomain differs from theSMTP MAIL FROMdomain. Even small mismatches—like subdomain variations or proxy domains—can break policies. The API flags these instantly. - Use MailTester’s inbox placement tester to simulate real inbox conditions after making changes. Verify that compliant emails now reach inboxes, not spam folders, without relying on post-send metrics.
Get real-time feedback on policy health
- Let the in-app AI assistant analyze your setup. It surfaces alignment issues, suggests policy corrections, and checks if your
p=quarantineorp=rejectsettings are conflicting with current authentication practices. - Review DMARC reports (if you’re collecting them) alongside verification results. You’ll see whether failures are due to misconfigured policy or poor list hygiene. Most email providers, including Google and Microsoft, recommend verifying before sending—see RFC 7073 on DMARC best practices.
- If you receive a
policy=quarantinereport but your sender usesp=reject, your policy may not be enforced uniformly. Use the API to check if the policy is consistently applied across all domains. Some providers allow only one policy per domain. - Monitor the impact of policy changes by re-checking critical addresses weekly—no waiting for deliverability reports to learn you broke something.
“DMARC policy enforcement depends on strict alignment and consistent authentication. You can’t rely on post-send diagnostics when changes take effect immediately.”
Best practices to avoid policy conflicts in the future
You can avoid DMARC policy conflicts by treating your DMARC policy as a single source of truth, documenting all authorized senders, and using p=quarantine only temporarily during setup. Never let multiple teams or tools set different policies. Centralize control, validate sender alignment, and transition to p=reject as soon as you’re confident in your configuration. This reduces the chance of misaligned enforcement and inbox delivery drops.
Centralize policy control and documentation
- Designate one team or system as the official source for DMARC policy decisions. Avoid multiple teams independently adjusting policies.
- Document every authorized sender—both internal and third-party—along with their respective SPF and DKIM configurations.
- Use tools like MailTester’s bulk verification to test and validate sender addresses in your domain’s approved list before relying on them in DMARC reports.
- Regularly audit your DMARC reports (typically via DMARC aggregate reports at dmarc-report.yourdomain.com) to confirm no unauthorized senders appear.
Manage enforcement transitions wisely
- Use
p=quarantineonly during initial deployment or migration. It’s not a permanent setting. - Once your reporting shows no suspicious activity from authorized sources, move to
p=rejectto enforce stronger protection. - Monitor inbox placement immediately after switching to
p=rejectusing inbox placement testing to catch any unintended side effects. - Keep your DMARC policy aligned with your current SPF/DKIM setup. Misalignment—even small gaps—can trigger enforcement failures.
DMARC is only as strong as your ability to enforce a consistent policy across your entire email ecosystem.
For a deeper look at how policy conflicts arise, see the IETF’s DMARC specification, which defines policy evaluation rules and the importance of consistency in enforcement actions. The RFC emphasizes that p=quarantine and p=reject must not be used simultaneously or inconsistently across domains or subdomains. Doing so defeats the purpose of a unified email authentication strategy. Let’s be clear: your DMARC policy must reflect reality, not just intention. If a third-party service sends on your behalf, it must be explicitly listed and properly authenticated. Otherwise, it will be blocked—or worse, exploited.
What does a valid, enforceable DMARC record look like?
A valid, enforceable DMARC record uses the single enforcement policy p=reject at the domain level, with sp=reject for subdomains, and includes reporting addresses. It avoids mixing p=quarantine and p=reject in the same record—this conflict causes enforcement failure. A properly structured record like v=DMARC1; p=reject; rua=mailto:[email protected]; ruf=mailto:[email protected]; sp=reject; ensures all failing emails are rejected, with no ambiguity.
Why enforcement fails with conflicting policies
If your DMARC record includes both p=quarantine and p=reject, DNS resolvers treat it as invalid. This isn’t just a minor issue—it breaks enforcement entirely. The spec says you can only have one enforcement policy at a time. You can’t say “reject emails that fail SPF or DKIM” and “quarantine those that don’t” in the same record. Doing so creates a conflict the system can’t resolve.
DNS validators and mailbox providers follow the RFC 7483 standard, which makes it clear: only one policy per record. When you publish two, the record is ignored or treated as non-enforcing. This is not a bug—it’s by design.
How to build a correct, robust DMARC record
Let’s build it step by step. You start with v=DMARC1—this identifies the record as a DMARC policy. Then, set p=reject to enforce strict rejection for messages that fail SPF or DKIM. Use sp=reject for subdomains, so they follow the same rule. Then add reporting addresses: rua=mailto:[email protected] for aggregate reports, and ruf=mailto:[email protected] for forensic data when spoofing occurs.
No need for p=none, p=quarantine, or multiple enforcement tags. Just one clear instruction: reject. This clarity is what prevents enforcement failure and gives mailbox providers confidence in your policies.
Use a DMARC record checker to validate the syntax and deployment. Tools like MXToolbox or DMARC.org can confirm your record resolves correctly and avoids conflicts. Even better, test your domain’s DMARC results in real-time using inbox-place testing tools like MailTester’s inbox placement test, which checks both policy delivery and inbox filtering behavior across major providers.
Once published, monitor the reports. They’ll show you who’s sending on your behalf, and whether any legitimate mail is failing. If you see errors, check your SPF and DKIM alignment. Fix the issues there—your DMARC policy is only as strong as the underlying authentication systems.
How does MailTester help prevent policy-related delivery failures?
You can stop DMARC policy enforcement failures before they hit your inbox by verifying how your emails land in real inboxes after policy changes, catching invalid or misconfigured addresses before they’re sent, and getting AI-driven alerts on risky configurations. It’s not about guessing — it’s about testing, validating, and acting.
Test real inbox placement after policy changes
- After setting p=quarantine or p=reject, run an inbox-placement test to see how your messages land across Gmail, Outlook, Yahoo, and other major providers — not just in theory, but in practice.
- MailTester simulates real sender behavior and reports whether messages are delivered to inbox, spam, or blocked — based on actual filtering behavior, not just policy checks.
- Many senders assume DMARC alignment is enough. But mailbox providers apply multiple filters. Testing placement helps confirm your policy isn't causing unintended blockage.
- See results in real-time inbox tests that show where your message lands, with detailed logs and provider-specific feedback — no guesswork.
Catch invalid or misaligned addresses before they send
- Use the real-time verification API or bulk list checks to flag addresses that fail DMARC alignment, are catch-alls, or are role-based (e.g., admin@, sales@) before deployment.
- MailTester identifies “risky” addresses — like those with outdated domains, invalid formats, or catch-all servers — so you don’t waste sends on addresses that’ll never deliver.
- When p=reject is enforced, even a single misaligned or invalid address can trigger a policy enforcement failure. Catching them early avoids delivery cascades.
- Unlike basic syntax checks, MailTester validates against real SMTP responses and provider filters, giving you 98.9% accuracy in identifying deliverability risk.
DMARC policies like p=quarantine and p=reject are only effective if the underlying sender infrastructure is clean and aligned. Testing and verification are not optional — they’re requirements.
AI-driven insights for smarter policy management
- The in-app AI assistant scans your email streams and flags inconsistencies between SPF, DKIM, and DMARC configuration — common causes of enforcement failures.
- It detects when policies like p=quarantine conflict with p=reject across different domains or subdomains, alerting you to logical misconfigurations.
- It suggests fixes: e.g., adjusting policy levels, aligning subdomains, or adjusting sender domains to match registered identifiers.
- Use single address checks to verify a tricky email before sending — especially useful when debugging a DMARC failure on a high-value recipient.
Policy enforcement fails when misalignment, invalid addresses, or weak authentication go undetected. MailTester gives you the tools to see what’s happening in real inboxes, validate your list quality, and respond with precision — not luck.
Conclusion: A single, enforceable DMARC policy is essential for deliverability
Conflicting DMARC policies—such as setting both p=quarantine and p=reject—are invalid and prevent proper enforcement. Mail servers ignore conflicting directives, leaving your messages vulnerable to filtering or rejection without consistent guidance.
Fix your DNS record by choosing one enforcement action: start with p=quarantine to monitor impact, then transition to p=reject once alignment and authentication are confirmed. This ensures senders are held to consistent standards and improves inbox placement.
Validate your changes using inbox-placement testing and list hygiene tools. Real-world validation catches misconfigurations before they affect engagement or reputation. MailTester verifies emails with 98.9% accuracy — start with 100 free verifications.
Frequently asked questions
Can I have both p=quarantine and p=reject in my DMARC record?
No. A valid DMARC record must define exactly one enforcement action: none, quarantine, or reject. Multiple enforcement tags are invalid and ignored by receivers.
What happens if my DMARC record has conflicting policies?
The record is treated as malformed. Receivers may ignore it or apply a default (often quarantine), leading to inconsistent spam filtering and reduced inbox placement.
How long does it take to see DMARC enforcement changes take effect?
DNS changes propagate in minutes to hours. Most email providers re-evaluate policy within 24 hours, but some may delay for longer due to caching.
Should I use p=quarantine or p=reject for my first DMARC deployment?
Start with p=quarantine to monitor alignment and identify false positives without disrupting delivery. Once all legitimate mail passes, switch to p=reject.
What tools can I use to check my DMARC record for conflicts?
Use DNS tools like MxToolbox or Spamhaus to fetch and validate your DMARC record. They will flag malformed entries with multiple enforcement tags.
Does MailTester test DMARC policy enforcement directly?
No. MailTester does not test DMARC policy enforcement. It tests email deliverability by simulating inbox placement across real provider inboxes.
Can a single DMARC record support different policies for different senders?
No. DMARC policies apply to all mail from the domain. They cannot be split by sender. Use subdomains with separate records if different enforcement is needed.
What’s the best way to validate DMARC changes without risking delivery?
Use inbox-placement testing and real-time verification before rolling out changes widely. Confirm success across multiple providers using tools like MailTester.
How does sending to unaligned addresses affect DMARC?
If an email fails SPF or DKIM alignment, it is evaluated against the DMARC policy. If policy is p=reject, it will likely be blocked or marked as spam.
Is p=none still useful for monitoring?
Yes. p=none enables reporting without enforcement. It’s useful during initial setup to collect data before applying stricter policies.
Can I have multiple DMARC records for one domain?
No. Only one DMARC record per domain is allowed. Multiple records are invalid and may trigger DNS errors.
What happens if I remove p=quarantine and only keep p=reject?
Legitimate mail that fails authentication will be rejected. Ensure all senders are properly set up before switching from quarantine to reject.
Sources
- Only 22.9% of top domains enforce DMARC with p=quarantine or p=reject, while 29.2% remain in monitoring-only p=none mode that blocks nothing. — EasyDMARC 2026 DMARC Adoption & Enforcement Report (2026)
- Since May 5, 2025, Microsoft Outlook requires SPF, DKIM, and DMARC from domains sending 5,000+ emails per day, rejecting non-compliant mail outright at the SMTP level with error 550 5.7.515. — Microsoft Outlook requirements (via MailOver bulk-sender requirements guide) (2025)
Keep reading
- Email authentication: SPF, DKIM, DMARC, BIMI and MTA-STS (complete guide)
- How to Fix DKIM Body Canonicalization Error with UTF-8 and ISO-8859-1 Mixed Encoding
- Why DKIM Fails with Folded Headers in Non-Relaxed Mode
- DKIM Verification Failed: Fix Timestamp Errors in 2026
- Fix DKIM Signature Errors with a Deliverability Checker That Flags Invalid t= Timestamps