What are the key elements of DMARC syntax?

What are the key elements of DMARC syntax and how do you implement them correctly?
DMARC (Domain‑based Message Authentication, Reporting, and Conformance) is the protocol that protects your brand from email impersonation. The real power – and the biggest source of confusion – lies in the DMARC record’s syntax. Get the syntax right and you’ll have a solid line of defense; get it wrong and attackers can slip through.
The basics of DMARC syntax
A DMARC record lives as a TXT entry in your DNS under the name _dmarc.yourdomain.com. It’s a semi‑colon‑separated list of tag‑value pairs. The record always starts with v=DMARC1 and then includes tags such as p, rua, sp, pct, and many more.
v=DMARC1; p=reject; rua=mailto:dmarc-reports@yourdomain.com
Each tag tells receiving mail servers how to treat messages that claim to be from your domain and where to send reports.
Tag‑by‑tag breakdown
- v= – Version tag. Must be
DMARC1. - p= – Policy tag. Options:
none(monitor only),quarantine(send to spam),reject(reject outright). - sp= – Subdomain policy. Inherits
pif omitted. - pct= – Percentage of mail to which the policy applies (0‑100).
- rua= – Aggregate report URI (usually
mailto:). - ruf= – Forensic report URI.
- adkim= – DKIM alignment mode (
rrelaxed,sstrict). - aspf= – SPF alignment mode (
rrelaxed,sstrict). - fo= – Failure reporting options (0,1,d,s).
- ri= – Reporting interval in seconds (default 86400).
- rf= – Reporting format (default
afrf).
Common DMARC record examples
Basic monitoring record – start with no enforcement:
Every DMARC record is a TXT entry published at _dmarc.yourdomain.com.
v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com
Enforcement record – reject all failing mail:
v=DMARC1; p=reject; rua=mailto:dmarc-reports@yourdomain.com
Full‑featured record – strict alignment, subdomain policy, daily reports:
v=DMARC1; p=quarantine; sp=reject; adkim=s; aspf=s; pct=100; rua=mailto:dmarc-reports@yourdomain.com; ruf=mailto:forensic@yourdomain.com; fo=1; ri=86400
How to validate your DMARC syntax
Even seasoned engineers make typos. Use a DMARC syntax checker to catch errors before they affect delivery. Our free Email Security Score tool not only validates the record but also gives you a full security score and highlights SPF and DKIM alignment issues.
Common DMARC syntax mistakes
Most DMARC problems are not conceptual — they are small syntax errors that silently break the record or weaken enforcement. These are the ones we see most often:
- Wrong record location. The record must be published as a TXT entry at
_dmarc.yourdomain.com, not at the root domain. A perfectly valid string published at the wrong host does nothing. - Two DMARC records on one domain. Receivers ignore your policy entirely when they find more than one
v=DMARC1TXT record at_dmarc. Publish exactly one and merge tags into it. v=DMARC1not first, or mis-cased. The version tag must be the first tag and is case-sensitive.V=dmarc1or a record that leads withp=is treated as invalid.- Unauthorized external reporting. If
rua/rufpoint to a mailbox on a different domain, that domain must publish ayourdomain.com._report._dmarcauthorization record, or the receiver won't send reports there. - Leaning on
pctfor safety.pctsamples enforcement, but many receivers are deprecating it and RFC guidance is moving away from it. Treat it as a short-term rollout aid, not a permanent setting — don't sit atpct=10forever. - Jumping straight to
p=reject. Enforcing before every legitimate sender is aligned is the fastest way to blackhole your own mail. Confirm alignment in DMARC reports first, then tighten.
From: header.
At a glance
Quick Takeaways
- Every DMARC record must start with
v=DMARC1. - Use
p=noneto monitor before moving toquarantineorreject. - Include
rua=mailto:…to receive aggregate reports. - Set
spif you have subdomains that also send mail. - Align DKIM and SPF with
adkim=sandaspf=sfor stricter security. - Gradually roll out enforcement with the
pcttag. - Validate your record regularly with a DMARC checker.
Move to quarantine or reject gradually, increasing pct as you gain confidence.Questions readers ask
FAQs
Keep going with AI
Ask AI how this applies to you
Take this guide to your assistant — each question opens pre-filled, with a link back to this page so it can read the details.

Written by
Taylor TabusaCo-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 →


