See if your domain meets Gmail, Yahoo, and Microsoft sender requirements. Check free →

Email authentication tool

DMARC Record Generator

Build a valid DMARC TXT record in 60 seconds. Pick your policy, set your reporting address, copy the result.

Build your DMARC TXT record

Required

Policy

Reporting

Coverage

pct= was removed from the spec (RFC 9989). Receivers on the current spec ignore it and apply your policy to every failing message. This generator no longer includes pct=. If your published record still has one, plan as if the value is 100.

sp= subdomain policy

np= non-existent subdomain policy

Advanced

adkim= DKIM alignment

aspf= SPF alignment

Output

Publish this DNS record:

_dmarc.yourdomain.com TXT "v=DMARC1; p=none"
v=DMARC1; p=none

Validation roundtrip passed.

You built the record. Publishing it is not the end of the job.

A DMARC record with p=none and rua= is where the actual work starts: reading aggregate reports as they arrive, catching the Salesforce sender that never aligned DKIM, deciding whether that Constant Contact IP is yours or spoofing. DMARCit does the reading and the classification so the record you just generated actually earns its way to p=quarantine. Free trial, no card. See how staged enforcement works →

When to use this tool

Use the DMARC Record Generator when you need to create a fresh record for a net-new domain, rebuild a record after an authentication audit, or sanity-check the record a vendor recommended before you publish it. It is designed for the practical moment when you already know you need DMARC and want a clean TXT value without memorizing every tag.

For a new domain, the generator helps you start in monitoring mode instead of jumping straight to enforcement. That matters because DMARC is not just a switch; it is a policy plus a feedback loop. A record with p=none and a reporting address lets you learn which services send as your domain, whether those services align SPF or DKIM correctly, and whether unknown traffic is legitimate mail you forgot about or spoofing you should block later.

For an existing domain, this page is useful when old DNS records have accumulated tags nobody remembers. You can recreate the intended state from first principles: policy, reports, subdomain coverage, alignment, and failure reporting. The output is intentionally plain so you can compare it against what currently exists at _dmarc and decide what to change.

It is also useful for vendor recommendations. Email platforms often suggest DMARC snippets, but they may omit your preferred reporting mailbox, use a policy that is too aggressive for your current readiness, or ignore subdomain handling. Build the record here, compare it to the vendor snippet, then publish the version that matches your rollout plan.

The fields explained

p= policy. This is the core instruction for mail using your organizational domain. none monitors, quarantine asks receivers to treat failures suspiciously, and reject asks receivers to block failing mail.

sp= subdomain policy. This controls mail from subdomains such as mail.example.com. If omitted, subdomains inherit p=. Set it explicitly when subdomains should be more or less restrictive than the root domain.

np= non-existent subdomain policy. This tells receivers how to handle mail claiming to come from subdomains that do not exist. It is useful for making anti-spoofing coverage explicit across the long tail of random hostnames attackers may invent.

rua= aggregate reports. This is where mailbox providers send XML summary reports. Add a monitored reporting address so you can see sources, authentication results, and alignment before increasing enforcement.

ruf= forensic reports. This optional tag requests per-message failure reports. Many receivers do not send them, and they can contain sensitive data, so use a dedicated mailbox and only enable it when you understand the privacy implications.

adkim= DKIM alignment. Relaxed alignment allows an aligned organizational-domain match; strict alignment requires an exact domain match. Most organizations start with relaxed alignment unless they have a clear reason to tighten it.

aspf= SPF alignment. This works like DKIM alignment but for the SPF-authenticated return-path domain. Relaxed is the normal default; strict can break legitimate mail if senders use subdomains or third-party bounce domains.

fo= failure options. This controls which authentication failures may trigger forensic reports. The default 0 is conservative. Change it only if you are deliberately requesting more detailed failure signals.

Common mistakes

The biggest mistake is publishing p=reject before monitoring. Reject is the end state, not the first step for most live domains. If an invoicing platform, CRM, ticketing system, or marketing sender is not aligned yet, immediate reject can block real customer mail.

Another common mistake is missing rua=. A DMARC record without aggregate reporting can still express policy, but you lose the visibility that makes a safe rollout possible. Reports are how you discover forgotten SaaS senders, subdomain traffic, and authentication drift.

Subdomain mistakes are subtle. If sp= is omitted, subdomains inherit p=. That may be exactly what you want, but it can surprise teams that use subdomains for separate mail streams. Choose inheritance deliberately, and set sp= explicitly when the root and subdomains need different treatment.

Finally, watch the mailto: syntax. Reporting addresses should be valid email addresses or full mailto: URIs. A malformed address can prevent reports from reaching the system or mailbox you are relying on for rollout decisions.

How this differs from a DMARC checker

The generator builds a new DMARC TXT record from form inputs. A checker looks up and parses the record already published in DNS. After you copy the generated value and publish it, use the DMARC checker to confirm the public DNS result matches what you intended.

Next steps after generating

First, publish the value as a TXT record at _dmarc.yourdomain.com with your DNS provider. DNS interfaces vary, but the host/name is usually _dmarc and the value is the generated string beginning with v=DMARC1.

Second, validate the published record with the checker after DNS has propagated. Confirm there is only one DMARC TXT record, that the policy is correct, that the reporting address is present, and that subdomain coverage matches your intent.

Third, start reviewing aggregate reports. Use those reports to approve legitimate senders, fix SPF and DKIM alignment, and plan a measured move from monitoring to enforcement. DMARC works best as an operational process: generate, publish, validate, observe, fix, and then enforce.

FAQ

What is a DMARC record?

A DMARC record is a DNS TXT record that tells receivers how to handle mail that fails SPF or DKIM alignment. Start with the guide at /learn/dmarc.

What's a safe starting policy?

Use p=none with rua= reporting so you can monitor before enforcement.

Why include sp= and np=?

They make subdomain and non-existent subdomain coverage explicit, which reduces surprises during enforcement.

Try another tool

Last updated 2026-06