Free tool · no signup
DMARC record generator
Build the DMARC record that stops criminals sending email as your domain. Pick a policy and a report address, copy the record, and follow the rollout steps so real mail keeps flowing.
By the Bug Circuit security team · Last updated
Your policy
v=DMARC1; p=none
- Type
- TXT
- Name / host
- _dmarc
- p=none only watches: spoofed mail is still delivered. It is the right place to start, but plan to move to quarantine and then reject once your legitimate senders pass.
- Add an rua address. Without aggregate reports you cannot see who is sending mail as your domain, so you cannot safely tighten the policy.
_dmarc.yourdomain that tells receivers what to do with mail that fails SPF and DKIM, and where to send reports. Start with p=none and a report address, read the reports for a few weeks, then move to quarantine and reject.How it works
What DMARC adds to SPF and DKIM
SPF and DKIM check technical details that attackers do not have to match. DMARC (RFC 7489) adds the missing link: it requires that the domain SPF or DKIM validated is the same one the reader sees in the From line, and it tells receivers what to do when that fails: p=none (just report), p=quarantine (send to spam) or p=reject (block).
Large mailbox providers now expect senders of bulk mail to have DMARC, and it is the single most effective control against someone sending convincing fake emails from your domain.
A rollout that does not lose real mail
Week 1: publish p=none with an rua address. Nothing is blocked, but you start receiving daily XML reports of every server that sends mail as your domain. Week 2 to 4: find any legitimate sender that fails (a forgotten newsletter tool, an old CRM) and fix its SPF or DKIM. Then move to p=quarantine with pct=25, raise the percentage as reports stay clean, and finally p=reject.
The generator warns you if a report address is on another domain, because that domain must publish a small DNS record to accept your reports, and if you are still on p=none.
The tags in the record
v=DMARC1 starts the record and p sets the policy. sp sets a different policy for subdomains. pct applies the policy to a percentage of failing mail. rua is where daily summaries go, ruf is for individual failure reports (many providers never send them). adkim and aspf choose relaxed or strict alignment: relaxed lets a subdomain match its parent domain, strict needs an exact match.
Worked examples
Step one: monitor only
Policy none, reports to dmarc@yourcompany.com.
v=DMARC1; p=none; rua=mailto:dmarc@yourcompany.com
Publish this first. Add it as a TXT record named _dmarc.
Step two: quarantine a quarter of failing mail
Policy quarantine, 25 percent.
v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@yourcompany.com
Only a sample of failing mail goes to spam while you watch the reports.
Step three: reject, with a stricter subdomain policy
Policy reject, subdomains reject, strict alignment.
v=DMARC1; p=reject; sp=reject; rua=mailto:dmarc@yourcompany.com; adkim=s; aspf=s
The goal state. Make sure every legitimate sender passes before you get here.
Frequently asked questions
Where do I publish a DMARC record?
Will DMARC block my own email?
What is the rua address for?
What does pct do?
Do I need DMARC if I only send a few emails?
How do I check that it works?
Keep reading
See what attackers see, for free
Run the free passive check on your website. No login, no impact on your site, results in seconds.
Ready for the full manual audit? See pricing