Utinzo

DMARC Record Checker

Check and analyse the DMARC policy for any domain to understand how email authentication failures are handled.

Did this tool work for you?

How to use this calculator

  1. 1

    Enter the domain name whose DMARC policy you want to check.

  2. 2

    Click "Check Now" to query _dmarc.yourdomain.com.

  3. 3

    The tool parses all DMARC tags: policy, subdomain policy, reporting addresses, and alignment modes.

  4. 4

    A "reject" policy is the strongest; "none" is monitor-only.

Frequently asked questions

Where does the tool look for the DMARC record?

It queries the TXT records at _dmarc.<your domain> through Cloudflare’s DNS-over-HTTPS service and takes the first one starting v=DMARC1. If a subdomain has no record of its own, it walks up to the parent domains, as receivers do, and the Found at line shows where the record was published. For an inherited record the policy shown is the sp= value when present, otherwise p=. The walk stops at two labels and does not use the public suffix list, so for a name like example.co.uk it may also query _dmarc.co.uk, which is harmless.

What do p=none, p=quarantine and p=reject do?

They tell receivers what to do with mail that fails DMARC: none means take no action but still send reports, quarantine means treat it as suspicious (typically the spam folder), and reject means refuse it during delivery. The tool marks reject as good and the other two as warnings. Starting at none and moving up once reports show all your legitimate mail passes is the usual rollout.

What does a message have to do to pass DMARC?

Either SPF or DKIM must pass, and the passing domain must align with the domain in the visible From header. Under relaxed alignment a shared organisational domain is enough (mail.example.com aligns with example.com), while strict alignment requires an exact match. The tool shows adkim and aspf only if they are present in the record; when absent, the defaults are relaxed.

What are rua and ruf, and why does the tool warn when rua is missing?

rua is the address (written mailto:) that receives aggregate XML reports summarising which sources sent mail as your domain and whether it passed. ruf requests per-message failure reports, which many receivers do not send. Without rua you cannot see who is sending as your domain, so the tool flags it as Not configured. The tool does not check that the report address works or accepts reports.

What does pct mean?

pct sets the percentage of failing messages the policy applies to, with the remainder getting the next lower policy. With p=quarantine and pct=25, a quarter of failing mail is quarantined. The tool prints it as Apply to, and 100% (default) when the tag is absent. It is a rollout aid and is normally removed once a policy is stable.

What does it not validate?

It does not check syntax rules such as v=DMARC1 being the first tag, does not verify report destinations, does not read the fo, ri or rf tags, and does not test whether your mail actually passes. If more than one DMARC record is published it flags this, because receivers ignore DMARC in that case. Pair it with the SPF and DKIM checkers and with real aggregate reports.

Does p=reject stop all spoofing of my domain?

It stops messages that claim to be from your exact domain and fail DMARC at receivers that honour it. It does not stop look-alike domains such as examp1e.com, and it does not stop spoofing of subdomains unless sp covers them or the subdomains inherit the policy.

About dmarc record checker

DMARC policy tags and how to read the checker’s output

What a DMARC record instructs

DMARC, specified in RFC 7489, adds two things on top of SPF and DKIM. First, it requires alignment: the domain that passed SPF or DKIM must match the domain in the From header the user sees. Second, it publishes a policy telling receivers what to do with mail that does not align, and an address for reports. The record is a TXT entry at _dmarc.yourdomain.com made of tag=value pairs separated by semicolons. This tool fetches that record, prints it as published and breaks out the tags below.

Tags the checker reports

Only the tags in this table are shown separately. Other tags remain visible in the raw Record line.

DMARC tags in the output
TagMeaningTool shows when
pPolicy for the domain: none, quarantine or rejectAlways; reject in green, others as warnings
spPolicy for subdomains if different from pTag is present
pctShare of failing mail the policy applies toTag present, else 100% (default)
ruaWhere aggregate reports are sent (mailto:)Present, else Not configured
rufWhere failure reports are sentTag is present
adkim, aspfDKIM and SPF alignment: s strict, r relaxedTag is present

A sensible rollout path

A cautious way to deploy DMARC begins with a record such as v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com. Check it here to confirm that it is found and that reports are marked configured. Over some weeks, read the aggregate reports to find every system that sends as your domain (marketing platforms, billing software, support desks) and fix SPF or DKIM for each. Only then move to p=quarantine, optionally with a low pct, and finally p=reject. Moving to reject early is the usual way legitimate mail gets lost. When you re-check after a change, remember that resolvers may serve the previous record until its TTL expires.

Checking a result

For a domain you own, enter it without a subdomain first, for example example.com. If the result is Not found, make sure the TXT record sits at the host name _dmarc and not at the apex, and that the value begins exactly with v=DMARC1. If the policy is p=none, you are in monitoring mode: nothing is being blocked yet. A reject policy with no reporting address is legal but leaves you blind to problems. If you enter a subdomain with no record of its own, the tool walks up to the parent domains and reports where it found the record and which policy applies to your subdomain.

DMARC Record Checker – Utinzo

Learn more from an authoritative source:

MDN Web Docs
Related tools

Results are estimates for informational purposes only and do not constitute professional financial, medical, legal, or technical advice. Read full disclaimer →