InputTestHub

DMARC Record Checker

Validates a DMARC record tag by tag, explaining what each one does and flagging the mistakes that stop reports arriving.

Developer Nothing uploaded No sign-up Free, unlimited
Developer tool
Paste something on the left to see the result.
In short A valid DMARC record must begin with v=DMARC1 as its first tag and must contain a p= policy of none, quarantine or reject. Everything else is optional: rua= sets where aggregate reports go, pct= applies the policy to a fraction of failing mail, adkim= and aspf= control how strictly the authenticated domain must match the From address, and sp= sets a different policy for subdomains. The DMARC Record Checker on inputtesthub.com validates each tag, explains what it does, and flags the common faults — a missing policy, a pct that does nothing at p=none, and an sp=none that leaves every subdomain unprotected while the domain enforces.

How to use the DMARC Record Checker

  1. Paste the TXT value from _dmarc.yourdomain.
  2. Read the tag table to see what each part does.
  3. Fix errors first, then review the warnings.

About the DMARC Record Checker

The DMARC Record Checker validates a DMARC record tag by tag, explaining what each one does and flagging the mistakes that stop reports arriving. It runs as plain JavaScript inside the page, which means there is no upload step, no queue and no size limit imposed by a server — the only limit is your own device.

What people use it for

  • Checking a record before publishing it.
  • Understanding a record someone else set up.
  • Finding out why a policy is not being enforced.

Details

Requiredv=DMARC1 first, then p=
OrderThe version tag must come first or the record is invalid
pctIgnored when the policy is none
spDefaults to the same policy as the domain
Unknown tagsIgnored by receivers rather than treated as errors
Unrecognised tags are not errors. DMARC tells receivers to ignore anything they do not understand, which is what lets the specification grow — so a tag flagged here as unrecognised is a typo worth fixing rather than something that breaks the record.

Where this tool stops

Checks syntax and policy. It cannot query DNS to confirm the record is published, nor tell you whether your mail passes alignment.

Frequently asked questions

Why is my policy not being enforced?
Three usual causes. The policy is still <code>p=none</code>, which blocks nothing by design. Or <code>pct</code> is set below 100, so only that share of failing mail is acted on. Or the record is invalid — most often because <code>v=DMARC1</code> is not the first tag, which makes receivers ignore the whole thing.
Does sp=none matter if my domain is set to reject?
A great deal. It exempts every subdomain from the policy, and a subdomain you have never sent mail from is exactly what an attacker will use — the From address still ends in your domain and still looks right to a person reading it. Unless you have a specific reason, leave <code>sp</code> unset so subdomains inherit.
Should I ask for ruf failure reports?
Probably not. Very few receivers send them, and those that do may include message headers and content — which can mean receiving other people's data with the privacy obligations that brings. The aggregate rua reports carry almost all the useful information.
Is the DMARC Record Checker free?
Free, unlimited, and no email address required. You can use it a hundred times a day and nothing changes.
Is my data uploaded anywhere?
No. The DMARC Record Checker runs entirely in your browser using JavaScript. Nothing is transmitted, logged or stored, which you can verify yourself in the Network tab of your browser's developer tools.
Who is the DMARC Record Checker for?
The jobs it is built for: checking a record before publishing it. Understanding a record someone else set up. Finding out why a policy is not being enforced. It is built for exactly those cases rather than being a general-purpose tool with this bolted on.
Is there anything the DMARC Record Checker cannot do?
Checks syntax and policy. It cannot query DNS to confirm the record is published, nor tell you whether your mail passes alignment. Knowing where a tool stops being trustworthy matters more than the cases where it works.
What figures does the DMARC Record Checker work from?
Required is <code>v=DMARC1</code> first, then <code>p=</code>. Order is The version tag must come first or the record is invalid. pct is Ignored when the policy is none. These are printed on the page itself, so you do not have to take them on trust.
Will this work on a tablet?
Yes. The page is responsive and the tool works in Chrome, Safari, Firefox, Edge and Samsung Internet on both Android and iOS. There is no app to install and nothing to sign into.

Related developer tools

All 92
01

JSON Formatter

Formats, indents and validates JSON with precise error positions, key sorting and a…

02

JSON Validator

Checks whether JSON is valid and reports the exact line, column and reason for the first error…

03

JSON Minifier

Strips all whitespace from JSON to produce the smallest valid output, showing the bytes saved.

04

JSON to CSV Converter

Converts a JSON array of objects into CSV, flattening nested keys and handling missing fields…

05

CSV to JSON Converter

Turns CSV or TSV into a JSON array of objects, with type detection for numbers and booleans.

06

JSON to XML Converter

Converts JSON into well-formed XML with a configurable root element and array item naming.

07

XML to JSON Converter

Parses XML and converts it to JSON, preserving attributes and handling repeated elements as…

08

JSON to YAML Converter

Converts JSON to clean YAML with correct indentation, quoting and multi-line string handling.

09

YAML to JSON Converter

Parses YAML and outputs equivalent JSON, with support for anchors, lists and nested maps.

10

JSON Escape and Unescape

Escapes a string for safe embedding inside JSON, and unescapes a JSON string back to plain text.