Skip to content
critical

DMARC record syntax errors that make receivers skip your policy

DMARC records are strict. The v=DMARC1 tag must come first, the p= tag is mandatory, and tag values are constrained to specific keywords. A record that looks close enough to a human is often invalid to a parser.

An invalid record is treated as no record: no enforcement, no reports.

How to fix it

  1. 1Confirm the record begins with exactly v=DMARC1 and that the tag is first.
  2. 2Confirm p= is present and is one of none, quarantine or reject.
  3. 3Confirm adkim= and aspf=, if present, are r or s.
  4. 4Confirm pct=, if present, is an integer between 0 and 100.
  5. 5Separate tags with semicolons and re-scan.

Check whether your domain has this problem

Free, no signup, about two seconds. You get the exact record to paste.

Related guides