DMARC record generator

Pick a policy, test mode and where reports go, and get the DMARC record for your next step from none to reject.

Runs in your browser. Nothing is published until you paste it.

Build your record

Every option follows RFC 9989, the DMARC standard since May 2026.
Policy for mail that fails DMARC (p)
Monitoring only: mail that fails DMARC is delivered as usual and reported.
Test mode t=y
Pick quarantine or reject to test it first.
Aggregate reports (rua)
Daily XML reports of who sends as you. Up to 5, comma-separated.
Failure reports (ruf), optional
Per-message reports. Few receivers send them.
Subdomains (sp)
Subdomains that don't exist (np)
DKIM alignment (adkim)
SPF alignment (aspf)
Your record add the TXT record on _dmarc
Type
TXT
Host
_dmarc
Value
v=DMARC1; p=none; rua=mailto:[email protected]
TTL
3600
Then: Type your domain above to get the record for it.

Rollout

One record per step. Move up only when the reports show every real sender passing.
p=noneStart here and read two weeks of aggregate reports.
p=quarantine with t=yOnce the reports show only your own senders. t=y asks receivers to treat failures as p=none while you watch.
p=quarantineAfter two weeks of clean reports in test mode.
p=rejectAfter two more clean weeks. This is the goal.
1. p=noneIn use
v=DMARC1; p=none; rua=mailto:[email protected]
2. p=quarantine with t=y
v=DMARC1; p=quarantine; t=y; rua=mailto:[email protected]
3. p=quarantine
v=DMARC1; p=quarantine; rua=mailto:[email protected]
4. p=reject
v=DMARC1; p=reject; rua=mailto:[email protected]

Next

Email me this report
The record, the rollout with the record for every step, and a saved link that stays live for 90 days.
Full report as HTMLRecords, copy-paste readySaved link for 90 days
One email with the report. No sequence, no sales call.
Ken checks DMARC on every domain it sends from.
Connect your domains and Ken keeps SPF, DKIM and DMARC right while it warms and sends.
Start free - 1,000 credits, no card

What the DMARC generator does

Fill in a few fields and get a valid record for _dmarc.yourdomain.com: the policy, a subdomain policy, the report addresses and the alignment modes. The record starts with v=DMARC1, which RFC 9989 requires as the first tag.

It also suggests the rollout path, so you know which record to publish now and which ones come next.

The rollout path

Most domains should climb the ladder in steps:

  • Start at p=none with rua set, and collect reports.
  • After two to four weeks of reports with every real sender passing, move to p=quarantine.
  • When quarantine has run clean for a few weeks, switch to p=reject.

To try a stricter policy before it fully applies, publish it with t=y. Receivers then apply one level below, so reject with t=y acts as quarantine. Remove t=y once the reports stay clean. Older guides use pct for this step, but RFC 9989 retired pct in May 2026.

Each step only affects mail that fails. If the reports show a sender failing, fix its SPF or DKIM before you tighten. A forgotten billing tool or CRM is the usual culprit.

How to publish

Create a TXT record with the host _dmarc. Some DNS panels want only _dmarc, others want _dmarc.yourdomain.com. Paste the value, save, and confirm it with the DMARC checker.

Keep one DMARC record per domain. A subdomain can have its own record at _dmarc.sub.yourdomain.com, which receivers use instead of the parent's.

Why it matters for cold email

Every sending domain needs its own DMARC record. A record on your main domain covers its subdomains, but not sibling domains like getyourbrand.com. Bulk senders to Gmail, Yahoo and Outlook.com need at least p=none.

Outbound domains that send through one provider can roll out fast. Once the reports show that provider passing DKIM with your domain, move to quarantine or reject.

Questions

What is a good DMARC record to start with?
v=DMARC1; p=none; rua=mailto:[email protected]. It collects reports without changing delivery. Move up the ladder once the reports look clean.
Should I go straight to p=reject?
Only if you're sure every service that sends as your domain passes SPF or DKIM with alignment. On a domain with years of history, start at none. A new sending domain that sends through one provider can move faster, once a test message shows dmarc=pass.
What happened to pct in DMARC?
RFC 9989, the DMARC standard published in May 2026, retired it, because receivers applied values other than 0 and 100 unreliably. To test a stricter policy, publish it with t=y, which asks receivers to apply one level below: quarantine acts as none and reject acts as quarantine.
Do subdomains need their own DMARC record?
No. They inherit the organizational domain's policy, or its sp value if you set one. Give a subdomain its own record only when it needs a different policy or different report addresses.
What should adkim and aspf be set to?
Leave them at the default, r for relaxed, unless you have a reason. Relaxed lets mail.yourdomain.com align with yourdomain.com. Strict needs an exact match and breaks setups that sign or bounce from a subdomain.

More in Deliverability

30 tools.