DMARC Record Generator builds the single DNS TXT record that tells receiving mail servers what to do with messages claiming to be from your domain that fail SPF and DKIM alignment. The record is published at _dmarc.yourdomain and is a semicolon-separated list of tag=value pairs with strict ordering — the version tag first, the policy tag second. Optional tags that match the DMARC defaults are left out so the record stays comfortably inside the 255-character TXT string limit. A second mode goes the other way: paste a record you already publish and every tag is parsed and checked, with missing mailto: prefixes, out-of-range percentages and misordered tags reported individually.
Features
Builds the record with tags in the order the specification requires
Policy, subdomain policy, percentage and alignment for SPF and DKIM
Aggregate (rua) and forensic (ruf) reporting addresses, normalised to mailto:
Omits optional tags that match the DMARC default to keep the record short
Emits both the TXT value and a ready-to-paste zone file line
Checker mode validates an existing record tag by tag
Distinguishes errors that break the policy from warnings worth knowing
Shows the exact hostname the record must be published at
How to use the DMARC Record Generator
Enter your domain to see the hostname the record belongs at
Choose a policy — start at none while you are still collecting reports
Add an aggregate report address so you actually receive the data
Copy the TXT value into your DNS provider, or switch to check an existing record
Published as a TXT record at _dmarc.example.com — the monitoring-only starting point for any rollout.
Common errors & troubleshooting
The checker says a report address is not usable. — DMARC report destinations are URIs, not bare addresses, so they need the mailto: prefix. The generator adds it automatically; a hand-written record often does not have it.
The checker complains that p= must come immediately after v=DMARC1. — The specification fixes the order of the first two tags. Move the policy tag directly after the version tag — everything after those two can appear in any order.
A warning says fo has no effect. — The fo tag controls when failure reports are generated, so it does nothing without a ruf address to send them to. Add one or drop the tag.
Mail from a legitimate sender started bouncing after publishing. — That is what a reject policy does to a sender you have not authorised yet. Move back to p=none, read the aggregate reports to find every system that sends as your domain, and tighten again once they all pass.
Frequently asked questions
What does a DMARC record actually do?
It tells receiving mail servers what to do with messages that claim to be from your domain but fail both SPF and DKIM alignment, and where to send reports about them. Without it, receivers make that decision on their own.
Should I start with p=none, quarantine or reject?
Start with none. It changes nothing about delivery but turns on aggregate reporting, which is how you discover every system legitimately sending as your domain. Move to quarantine and then reject only once those all pass alignment.
What is the difference between relaxed and strict DMARC alignment?
Relaxed alignment accepts a subdomain match, so mail from bounce.example.com aligns with example.com. Strict requires an exact match. Relaxed is the default and is right for most organisations, since bulk senders commonly use subdomains.
Where do I publish a DMARC record?
As a TXT record on the hostname _dmarc followed by your domain — _dmarc.example.com for example.com. Some DNS panels want just the _dmarc part in the name field and add the domain themselves.
Does the DMARC Record Generator query my DNS?
No. It builds and validates the record text on your device without making any DNS query, so nothing about your domain is sent anywhere.
Related tools
CSP Header Generator — Build a Content-Security-Policy header from directive toggles, with report-only and copy output.
robots.txt Generator — Visually build a robots.txt with user-agent rules, allow/disallow paths, crawl-delay and sitemaps.
XML Sitemap Generator — Turn a list of URLs into a standards-compliant sitemap.xml with optional lastmod, changefreq and priority.
.htaccess Generator — Toggle and configure common Apache .htaccess snippets with live output.
Nginx Config Generator — Build an nginx server block (static, reverse proxy, SSL, gzip, caching) from simple toggles.