🔑 DMARC Record Generator
Build a syntactically valid DMARC TXT record. Set your policy, reporting addresses, alignment mode and rollout percentage — the generator handles correct tag order and formatting.
What Is DMARC and Why Generate a Record Instead of Writing One by Hand
DMARC (Domain-based Message Authentication, Reporting, and Conformance) is a DNS TXT record that tells receiving mail servers two things: what to do with mail claiming to be from your domain that fails SPF and DKIM alignment, and where to send reports about that authentication activity. The record itself is a single line of semicolon-separated tags, but getting the syntax exactly right — correct tag names, correct value formats, mailto: prefixes on reporting addresses, valid percentage ranges — is easy to get subtly wrong by hand, and a malformed record is typically treated by receivers as no record at all, silently discarding whatever protection you thought you'd published.
How the Generator Works
Every field maps directly to one DMARC tag as defined in RFC 7489. The generator assembles them in the conventional order (v, p, sp, pct, rua, ruf, fo, adkim, aspf, ri), joins them with semicolons, formats reporting addresses as mailto: URIs automatically, and omits any tag you leave at its default or empty state — producing the shortest valid record that expresses exactly what you configured, rather than a bloated record listing every possible tag regardless of whether you set it.
DMARC Policy Controls Explained
| Tag | Purpose | Typical Starting Value |
|---|---|---|
| p= | Policy for your exact domain | none, moving to quarantine then reject over time |
| sp= | Separate policy for subdomains | Leave inherited unless subdomains need different handling |
| pct= | Percentage of failing mail the policy applies to | 100, or lower during a gradual reject rollout |
| rua= | Where aggregate reports are sent | An address you or your team actually monitors |
| ruf= | Where forensic (per-message) reports are sent | Optional; many receivers send little forensic data |
| fo= | When forensic reports are triggered | Only relevant if ruf= is set |
| adkim= / aspf= | Alignment strictness for DKIM / SPF | r (relaxed) for both, unless you have a specific reason for strict |
| ri= | Requested reporting interval in seconds | Leave default; most receivers send daily regardless |
p=none vs quarantine vs reject
none takes no delivery action at all — it exists purely to turn on reporting so you can observe what's happening before enforcing anything. quarantine routes failing mail to spam/junk rather than blocking it outright, a reasonable middle step. reject blocks failing mail from being delivered at all, the strongest protection and the appropriate end state once you're confident every legitimate source is properly aligned. Moving through these in order, with real report data checked at each stage, is the difference between a safe DMARC rollout and one that silently breaks legitimate mail.
Practical Examples
| Scenario | Example Record |
|---|---|
| Just starting, monitor only | v=DMARC1; p=none; rua=mailto:reports@example.com |
| Gradual reject rollout at 25% | v=DMARC1; p=reject; pct=25; rua=mailto:reports@example.com |
| Full enforcement, strict alignment | v=DMARC1; p=reject; pct=100; rua=mailto:reports@example.com; adkim=s; aspf=s |
Common Mistakes This Generator Prevents
Security Considerations
A DMARC record is only as protective as the SPF and DKIM setup it relies on for alignment — publishing a strict p=reject record without correctly configured, passing SPF and DKIM first will block your own legitimate mail, not just spoofed mail. Always verify SPF and DKIM are passing cleanly (via SPF Lookup and DKIM Lookup) before tightening DMARC policy.
Troubleshooting After Publishing
If aggregate reports show legitimate mail failing after publishing, check alignment mode first (relaxed vs strict) since strict alignment is a common, easy-to-miss cause of otherwise-legitimate mail failing DMARC despite SPF or DKIM passing individually. Use DMARC Lookup to confirm exactly what's currently published and propagated.
Related Reading
For the full process of planning a rollout, see Create a DMARC Record. For what every tag means in depth, read DMARC Tags Explained. For choosing between rua and ruf, see rua vs ruf. For a full safe-rollout checklist, see DMARC Deployment Checklist. For general best practices, read DMARC Best Practices.