Back to ResourcesDMARC Guides

How to create a DMARC record

By Taylor TabusaAugust 9, 2023Updated July 17, 20268 min read

In brief

Create a DMARC record step by step: build the TXT record, pick a policy, publish it in DNS, and add reporting so you can safely enforce reject.

How to create a DMARC record

To create a DMARC record, add a DNS TXT record named _dmarc.yourdomain.com with the value v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com — then confirm it exists with a DMARC checker and start reading aggregate reports before you enforce a stricter policy.

How to create a DMARC record

DMARC (Domain-based Message Authentication, Reporting, and Conformance) is an email authentication protocol that tells receiving mail servers what to do with messages that fail SPF or DKIM checks. Without it, anyone can send email that appears to come from your domain.

What goes into a DMARC record?

A DMARC record is a DNS TXT record published at the subdomain _dmarc.yourdomain.com. It contains tags separated by semicolons. Two tags are required; the rest are optional but important.

Required tags

TagValuePurpose
vDMARC1Must appear first; identifies this as a DMARC record
pnone / quarantine / rejectPolicy to apply when a message fails authentication

Commonly used optional tags

TagExamplePurpose
ruarua=mailto:dmarc@example.comWhere to send daily aggregate (XML) reports
rufruf=mailto:dmarc@example.comWhere to send forensic failure reports (less commonly used)
spsp=rejectOverride policy for subdomains; if omitted, subdomains inherit p=
adkimadkim=sDKIM alignment: r relaxed (default) or s strict
aspfaspf=sSPF alignment: r relaxed (default) or s strict
fofo=1Failure reporting options; fo=1 generates a report on any single auth failure
pctpct=25Percentage of failing mail the policy applies to — useful for staged rollout
Note on pct: RFC 9989 (published May 2026, the Standards Track update to RFC 7489) removed the pct tag from the specification. Major providers still honour it for now, but it is not guaranteed to behave consistently across all receivers. Prefer staged rollout through policy escalation (nonequarantinereject) rather than relying on pct.

How alignment modes work

adkim and aspf control how strictly the From domain must match the authenticated domain:

  • Relaxed (r, default): The organizational domain must match. mail.example.com aligns with example.com.
  • Strict (s): An exact match is required. mail.example.com does not align with example.com.
Start with relaxed alignment unless you have a specific reason for strict — it avoids breaking mail sent through subdomains of your domain.

Step-by-step: how to create a DMARC record

Step 1 — Confirm SPF and DKIM are in place

DMARC builds on top of SPF and DKIM. If neither is configured, DMARC has nothing to verify against and every message will fail. Check your current setup with the SPF checker and DKIM checker before proceeding. If you need to set them up first, start with what are DMARC, DKIM, and SPF.

Step 2 — Build your starting record

For a first deployment, use p=none so you collect reports without affecting mail delivery. The minimum viable record is:

Technical exampletext
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com

Add fo=1 to get failure reports on any authentication issue, not just complete DMARC failures:

Technical exampletext
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; fo=1

Use the free DMARC generator to produce a record with the exact tags you need and copy the result.

Step 3 — Publish the TXT record in DNS

Log in to your DNS provider (Cloudflare, GoDaddy, Google Domains, or your registrar's DNS panel) and add a new TXT record:

FieldValue
TypeTXT
Host / Name_dmarc (some providers need the full _dmarc.yourdomain.com)
Valuev=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; fo=1
TTL3600 (1 hour) is fine; lower for faster iteration during testing

Save the record. DNS propagation typically completes within minutes to a few hours, though up to 48 hours is possible.

Step 4 — Verify the record is live

Use the DMARC checker or run a DNS lookup for _dmarc.yourdomain.com TXT records. You should see your record returned verbatim.

Two example DMARC TXT records showing a starting none policy and a final reject policy with strict alignment. Top: a monitoring-only starting record. Bottom: a final enforcement record with strict alignment.

Step 5 — Read reports and fix authentication gaps

Aggregate reports arrive daily (usually as gzip-compressed XML) at the rua address. They show every IP that sent mail claiming to be from your domain and whether SPF/DKIM passed for each. Read how to understand DMARC reports for a field-by-field walkthrough.

Use the reports to find any legitimate sending services that are not yet covered by SPF or DKIM, then fix their authentication before tightening the policy.

Step 6 — Escalate the policy

Once your reports show all legitimate mail passing consistently:

  1. Move to p=quarantine — failing mail routes to spam instead of the inbox.
  2. Watch for a week or two. If no legitimate mail fails, move to p=reject.
  3. With p=reject in place, spoofed mail is refused at the SMTP level and never delivered.
See DMARC reject vs quarantine for a detailed comparison of both enforcement policies. Three-column comparison of the DMARC none, quarantine, and reject policies showing how each handles emails that fail authentication. The p= tag in your DMARC record sets which policy receivers apply to failing email. Six-step DMARC deployment path moving gradually from a monitoring-only none policy to a full reject policy. A conservative, report-driven rollout protects legitimate email delivery at each stage.

Common issues with DMARC records

Record not found after publishing

If the DMARC checker returns "no record found" right after you publish, DNS has not propagated yet — wait up to 30 minutes and check again. If it stays missing after an hour, confirm that the host field is set to _dmarc (not _dmarc.yourdomain.com when the provider auto-appends the domain), that the record type is TXT (not CNAME), and that you saved in the correct zone.

Syntax errors causing the record to be ignored

A single character mistake — a missing semicolon, a space inside mailto:, or v=dmarc1 with a lowercase 'd' — causes receivers to ignore the record entirely. Copy your record into the DMARC checker to catch syntax problems before they affect mail. The v tag must equal exactly DMARC1 (case-sensitive) and must be the first tag in the string.

Aggregate reports not arriving

Check that the rua mailbox exists and can receive external mail. Some organisations use a dedicated address like dmarc-reports@yourdomain.com — make sure it is not over quota and that your mail server accepts XML attachments. If reports still do not appear after 48 hours, verify the rua=mailto: URI is syntactically correct (no spaces, valid address). You can also check your email security score to confirm the record is being read by validators.

Subdomain policy confusion

If you have not set the sp= tag, subdomains inherit the main p= policy. A p=reject record without sp= will also apply reject to mail.subdomain.yourdomain.com — which can break mail sent from those subdomains if they are not yet fully authenticated. Set sp=none explicitly while you work through subdomain authentication, then tighten it once reports confirm those senders are clean. The article on DMARC subdomains and the sp tag covers this in detail.

Ready to enforce your DMARC policy?

Creating the record is the easy part — the work is reading reports and fixing every legitimate sender until the data supports enforcement. Check where your domain stands right now with the free Email Security Score, or use the DMARC generator to build a record tailored to your setup.

Questions readers ask

Frequently asked questions

Turn DMARC findings into a managed fix path

Start in Palisade.

Get started

Share this article

Taylor Tabusa

Written by

Taylor Tabusa

Co-Founder & Head of Business Development, Palisade

Taylor Tabusa is the co-founder and Head of Business Development at Palisade, helping managed service providers turn email security into a practical, valuable service.

More from Taylor

Related articles