DMARC Generator
DMARC Policy Generator
Start with "none" to monitor reports before enforcing
Apply policy to 100% of failing emails. Start low and increase gradually.
Receive daily XML reports with DMARC pass/fail statistics
Receive individual failure reports (can be high volume)
📖 DMARC Migration Best Practice
- Week 1-2: Start with p=none, monitor reports
- Week 3-4: Change to p=quarantine with pct=10
- Week 5-6: Increase to pct=50
- Week 7+: Full enforcement with pct=100
- Optional: Switch to p=reject for maximum protection
About DMARC Generator
Build a syntactically correct DMARC record from scratch. Pick policy mode (none / quarantine / reject), set the enforcement percentage, choose SPF and DKIM alignment (strict or relaxed), define a subdomain policy, and add rua / ruf reporting addresses so you actually see who is trying to spoof your domain. Output is a TXT record ready to publish at _dmarc.yourdomain.com.
How the DMARC generator works
Pick the right policy for your stage
Set policy mode
Start with p=none for monitoring. Move to p=quarantine after 2-4 weeks. Eventually p=reject for full protection. The generator picks safe defaults.
Add reporting addresses
rua= for aggregate reports (always set this). ruf= for forensic reports (optional, privacy-sensitive). Use a mailbox you actually read — [email protected].
Configure alignment + copy
Pick strict vs relaxed alignment for SPF and DKIM separately. Optional pct for gradual rollout. Final record ready to paste as TXT at _dmarc.yourdomain.com.
Common gotchas this generator avoids
Mistakes that break DMARC
Going straight to p=reject
Skipping p=none means you have no reports — you can't see which legitimate senders fail alignment. Mail bounces. Always monitor first.
Missing rua= address
No rua = no aggregate reports = you're flying blind. You can't identify spoofing attempts or fix legitimate senders that fail.
Wrong subdomain policy (sp=)
If you don't set sp=, subdomains inherit p=. If your subdomains have different needs, set sp= explicitly. The generator handles this correctly.
Strict alignment without strict signing
adkim=s requires the From: domain to EXACTLY match DKIM d=. If your DKIM signs with mail.example.com but From: is example.com, you break alignment. Start with relaxed.
Wrong rua= syntax
rua must be mailto: URI: rua=mailto:[email protected]. Without mailto: receivers ignore it. The generator enforces this.
Forgetting v=DMARC1
Every DMARC record must start with v=DMARC1. Without it, receivers ignore the record. The generator adds this automatically.
FAQ
DMARC generator — common questions
What is a DMARC record?+
What policy mode should I start with?+
What is the difference between strict and relaxed alignment?+
Why must I set rua= reporting addresses?+
What is the pct= percentage and when should I change it?+
Other generators
Build your full email auth stack
Beyond Free Tools
Enterprise Cloud & IT Services
From Microsoft 365 migrations to fully managed infrastructure — we handle every layer of your IT stack.
Migration Tools We Use
Enterprise-grade tooling for every platform
- BitTitan MigrationWiz— Cloud-to-cloud email & data
- Microsoft Exchange Hybrid— On-prem to Exchange Online
- ShareGate Desktool— SharePoint & OneDrive
- Microsoft Mover.io— Google Drive to OneDrive
- Entra ID Connect— AD sync & hybrid identity
- PowerShell & EWS API— Automation & bulk ops