free tool

DMARC record checker.

Parse every tag, grade the policy, and flag monitoring-only enforcement, missing reporting, and subdomain gaps. See exactly what a client domain tells receivers to do with failed mail.

what it checks

More than a TXT lookup.

A DMARC record can exist and still protect nothing. The checker parses the record the way a receiving mail server does and grades what it actually enforces.

record presence & uniqueness

A domain must publish exactly one v=DMARC1 TXT record at the _dmarc subdomain. Zero means no policy; two or more can make receivers ignore DMARC entirely.

policy strength

p=none only monitors — spoofed mail still lands in inboxes. We grade your policy and tell you whether it actually instructs receivers to quarantine or reject failures.

tag syntax

Every tag is parsed per RFC 7489: invalid policies, out-of-range pct values, bad alignment modes, malformed reporting URIs, and duplicate tags.

aggregate reporting

Without a rua= address, no one is told when DMARC fails — you are enforcing blind. We flag records that have no aggregate reporting destination.

subdomain coverage

The sp= tag can quietly leave every subdomain at a weaker policy than the domain itself. We compare the two and flag the gap.

percentage rollouts

pct below 100 applies your policy to only a fraction of failing mail. Useful during rollout, a hole if it is left behind — we surface it either way.

common failures

The DMARC mistakes we see most.

stuck at p=none

p=none is meant as a temporary monitoring step, but most domains never leave it. Receivers get no instruction to do anything with spoofed mail, so the record protects nothing.

no reporting address

Without rua=, receivers have nowhere to send aggregate reports. You cannot see who is sending as your domain, which failures are legitimate senders, or when something breaks.

weak subdomain policy

sp=none next to p=reject means the main domain is protected but invoices.yourdomain.com is not. Spoofers target subdomains precisely because of this gap.

record at the wrong name

DMARC lives at _dmarc.yourdomain.com, not at the root. A perfectly valid record published in the wrong place is invisible to every receiver.

leftover pct from rollout

pct=10 was sensible while testing quarantine, but left in place it exempts 90% of failing mail from your policy — silently, forever.

faq

DMARC questions, answered.

beyond dmarc

A valid DMARC policy is one part of the client domain.

The free scan checks email auth & DMARC, SSL & domain expiry, look-alikes, and blacklists together from public records. Monitoring adds daily DMARC reports with one DNS record.

related checks

Keep checking the same failure point.

Use the related tools one at a time, or run all four posture checks together.