DMARC for Microsoft 365 follows the same pattern as any DMARC deployment: monitor, ramp, enforce. Never skip straight to p=reject without a monitoring period.
Prerequisites
- SPF configured and passing (see how to set up SPF for Microsoft 365)
- DKIM enabled in the Microsoft 365 Defender portal (see the DKIM selector FAQ)
- DNS host access
- A monitored mailbox for aggregate reports
Step 1 — Publish the Initial DMARC Record
Add a TXT record at your DNS host:
- Name —
_dmarc - Type — TXT
- Value —
v=DMARC1; p=none; rua=mailto:[email protected]; fo=1
Full record: _dmarc.yourdomain.com.
Verify with the DMARC lookup tool after 5-30 minutes.
Step 2 — Collect Aggregate Reports (4-8 Weeks)
Daily XML reports arrive at your rua= mailbox. Use a parser (dmarcian, EasyDMARC, Postmark DMARC Digest, Valimail) to visualize them.
Watch for:
- Non-Microsoft sending IPs — anything unexpected is either shadow-IT SaaS or spoofing
- DKIM failures on legitimate senders — DKIM not enabled or misaligned
- SPF pass but DMARC fail — alignment issue; envelope-sender domain doesn’t match From: domain
Common Microsoft 365 issues to fix during monitoring:
- Bulk senders (Mailchimp, HubSpot, SendGrid) — configure their authenticated-domain feature so DKIM aligns with your root domain
- Legacy scanners / relays — may need
mailflowconnector rules or SPF additions - Autoresponders / meeting-room aliases — usually align via Microsoft’s own signing
Step 3 — Step Up to p=quarantine
After 4-8 weeks of clean reports:
v=DMARC1; p=quarantine; pct=25; rua=mailto:[email protected]; fo=1
Ramp pct=25 → 50 → 100 over 4-6 weeks.
Step 4 — Step Up to p=reject
After p=quarantine; pct=100 for 4+ weeks with no legitimate mail failing:
v=DMARC1; p=reject; rua=mailto:[email protected]; fo=1
Non-aligned mail is rejected at the receiver.
Step 5 — Subdomain Policy
By default, DMARC applies to your root and inherits to subdomains. Override for subdomains with sp=:
v=DMARC1; p=reject; sp=quarantine; rua=...
Useful if root domain is well-authenticated but subdomains still onboarding.
Common Miss
- Skipping the monitoring period — legitimate mail from lightly-authenticated systems bounces
- DKIM not enabled in Defender portal — DMARC alignment fails even when SPF passes
- Missing
_dmarcsubdomain — record atdmarc.yourdomain.com(no underscore) is ignored - Multiple
_dmarcTXT records — receivers ignore all of them - Publishing DMARC before SPF/DKIM are stable — you have nothing to enforce
Confirm each step with the DMARC lookup tool and the email authentication checker.
Related
Read what DMARC is, the DMARC glossary entry, and follow up with how to read a DMARC report.