DMARC checker
Read a DMARC record in plain words, and see exactly what a receiver does with mail that fails.
Paste a DMARC record you are drafting and read every tag in it, with the syntax a receiver would discard it for.
Paste the whole TXT value. Quotes, a record name or a whole "IN TXT" line are fine — they are stripped before parsing. Nothing is looked up or stored.
Nothing pasted yet
Paste a DMARC TXT value and every tag in it is explained as you type.
This DMARC record parser takes the TXT value you paste — a record you are drafting, or one a vendor sent you that nobody has published yet — and explains every tag in it, naming the syntax errors that would make a receiver throw the whole record away. No domain, and no lookup.
A DMARC record is a semicolon-separated list of tag=value pairs, and RFC 7489 section 6.3 registers eleven of them. Two are compulsory and have to come in order: "v=DMARC1" first, then "p". The other nine have defaults, which is why a short record and a long one can ask for very nearly the same thing — and why a tag nobody set still has an effect worth reading.
Most of what goes wrong in a draft is not the policy but the grammar around it: a tag name with a typo, a report address written as a bare email address, a percentage with a "%" after it, a word where a single letter belongs. A receiver does not write back about any of that. It either applies a default you did not choose or discards the record entirely, and both look identical from the outside.
The table lists all eleven tags whether or not this record sets one, so the defaults are visible rather than implied: what is beside "adkim" when you never wrote an "adkim" tag is what a receiver will actually use. An unregistered tag name is listed under them, separately, because a receiver ignores it entirely.
A fail means a receiver would either discard the record or quietly substitute a default — the text is wrong, not just unwise. A warn means the record is valid and does less than it looks like it does: monitoring only, a percentage that enforces nothing, a reporting tag with nowhere to report to. An info is the tag explained, including the ones you left out.
This page checks a draft DMARC record’s tags, not why DMARC fails when SPF alone passes. For how SPF, DKIM and DMARC fit together, what order to fix them in, and what to do once one fails, see our guide How SPF, DKIM and DMARC work together, and what to do when one fails.
Resell mailbox licences for the domains you just checked, under your own brand.
Get startedWhat people ask about this tool.
RFC 7489 section 6.3 says the "v" tag must be the first tag in the list and its value must match "DMARC1" precisely, and section 6.6.3 has a receiver discard any record that does not start that way. A record with the tags in a different order is not a lenient parse away from working — it is ignored.
No. The grammar in RFC 7489 section 6.4 ends with an optional separator, so a trailing semicolon is part of the record format. This tool says so explicitly, because several checkers report it as an error and people then edit a working record to silence them.
No, and that is the point of a parser rather than a checker: it makes no DNS query at all, so it can only judge the text you pasted. To see what is live at "_dmarc." plus your domain, including whether two records are published at once, use the DMARC checker instead.
Nothing, in practice. Zero is inside the range RFC 7489 section 6.3 allows, but the sampling rule in section 6.6.4 only selects a message when a random number under 100 is below the percentage, which never happens at zero — so "p=reject; pct=0" behaves exactly like "p=none".
Eleven, per RFC 7489 section 6.3: v and p are required, and sp, pct, rua, ruf, adkim, aspf, fo, ri and rf are optional with defaults. Anything else is an extension nobody has registered, and a receiver is required to ignore it rather than report it.
Every fixed value this page gives you comes from the provider’s own documentation. These pages change, so each one says the day it was last read here.
Read a DMARC record in plain words, and see exactly what a receiver does with mail that fails.
Build a DMARC record step by step, from monitoring through to full enforcement.
Check an SPF record for the faults that silently break it, and count every DNS lookup it costs.
Company names and logos are trademarks of their owners, shown only to identify each service.