Home/Email Security/DMARC Record Generator
[ EMAIL — DMARC GENERATOR ]

DMARC Record Generator

Build a valid DMARC TXT record for your domain. Pick the right policy for your stage (start at p=none for monitoring), add the email address that should receive reports, and copy the assembled record.

Last reviewed: June 2026

// Everything runs locally in your browser — nothing is sent to our servers.
// 01 — your record0 chars
v=DMARC1; p=none
This is a monitor-only record. Receivers will send you aggregate reports about who's claiming to be from your domain, but won't act on the results. Add a report address below to start receiving them.
// 02 — build the record
Used only for the publish instructions below. The DMARC record itself doesn't contain the domain name.
Policy (p=) — what receivers should do with unauthenticated mail
Subdomain policy (sp=) — optional
Mailbox or report-processor address that receives daily aggregate reports. Format: mailto:dmarc@example.com. You can list more than one address, comma-separated.
Per-message failure reports. Note: these can contain PII from the original message; most providers don't send them. Usually skipped.
Apply the policy to a % of mail (1-100). Default is 100. Use values below 100 for a phased rollout to quarantine or reject.
Seconds between aggregate reports. Default 86400 (daily). Most receivers ignore values smaller than a day.
DKIM alignment (adkim=)
SPF alignment (aspf=)
// 03 — publish
Publish your DMARC record as a TXT record at _dmarc.example.com. Wait a few minutes for DNS to propagate, then verify with our DMARC Checker.
Make sure SPF and DKIM are already set up for your domain before turning DMARC on — DMARC checks their results. Use our SPF Generator and the DKIM lookup if you haven't yet.

What does DMARC do that SPF and DKIM don't?

SPF says which servers can send mail for your domain; DKIM cryptographically signs each message so receivers can verify it wasn't tampered with. Both are necessary, but neither tells the receiver what to do when authentication fails — and crucially, neither protects the From: header the user actually sees.

DMARC bridges those gaps. It tells receivers: "If a message claims to be from my domain, the SPF or DKIM result must align with my domain, and here's what to do if it doesn't." That last part — the policy, p=none / p=quarantine / p=reject — is the lever you control with this generator.

Why start at p=none?

This is the single most important DMARC rule and the one most often skipped: do not start at p=quarantine or p=reject. Almost every domain has more legitimate senders than its owner realises — a transactional email provider, a marketing platform, a CRM, a help-desk tool, a partner integration, somebody's automation. Until you've watched DMARC reports for a few weeks, you don't know who they all are.

p=none tells receivers: keep delivering normally, but send me a report every day summarising which IPs sent mail as my domain and whether it authenticated. The reports go to the address in your rua tag. After a few weeks you'll have a clear picture of every legitimate sender; add the missing ones to SPF and DKIM, then move to p=quarantine for a while, then to p=reject. Skipping the monitoring stage is how legitimate mail gets silently dropped.

What goes in rua?

The rua tag is the email address that receives aggregate DMARC reports. Format: mailto:dmarc@example.com. You can list multiple addresses. Most domains use either a dedicated mailbox or a third-party DMARC report processor (because the reports are XML and not human-readable). The free processors are good enough for small domains; pay-for-it providers scale better.

ruf is the forensic/failure report tag — per-message detail for each failure. Far fewer providers actually send ruf reports, the reports can contain message contents (PII), and they're operationally noisy, so most domains skip ruf entirely.

Alignment, in one paragraph

DMARC requires the domain in the visible From: header to align with the domain SPF or DKIM authenticated. "Relaxed" alignment (the default, r) treats mail.example.com and example.com as aligned — same organisational domain. "Strict" alignment (s) requires an exact match. Relaxed is right for almost everyone; strict can break legitimate mail sent from subdomains.

Where does this go?

Publish the assembled record as a TXT record at _dmarc.<yourdomain> — for example.com that's _dmarc.example.com. The record value is the single semicolon-separated string the generator outputs. After publishing, give DNS a few minutes to settle, then verify with the DMARC Checker.

Last reviewed by Network Lookup Team, June 2026.