Skip to main content
Free DMARC Analyzer

Free DMARC Record & Report Analyzer

Paste a DMARC record (v=DMARC1; …) or a DMARC aggregate (RUA) report in XML. For a record we grade the policy (none/quarantine/reject), pct, subdomain policy and reporting; for an aggregate report we summarise total messages, the DMARC pass rate and the top sources of failing mail. Runs in your browser.

🔒 Runs entirely in your browser — nothing is uploaded or stored (input capped at ~2 MB).

What this dmarc analyzer checks

DMARC policy (p): none vs quarantine vs reject
Subdomain policy (sp), coverage (pct) and alignment (adkim/aspf)
Reporting addresses (rua / ruf)
Aggregate report: total messages and DMARC pass rate
Top sources of DMARC-failing mail (legit-but-unauthorized vs spoofing)

How it works

In-browser· parsed entirely client-side
  1. You paste either a DMARC record (v=DMARC1; …) or a DMARC aggregate (RUA) XML report; we auto-detect which.
  2. For a record we grade policy (none/quarantine/reject), pct, subdomain policy, alignment and reporting; for a report we summarise total messages, the pass rate and the top failing sources.
  3. Everything is parsed in your browser — nothing is uploaded.

Why it matters

DMARC is what actually stops attackers from spoofing your domain — but most domains sit on p=none and never read the reports, so they get the monitoring without the protection. Reading the aggregate reports tells you when it is safe to move to reject.

Frequently asked questions

What does this accept?

Either a DMARC TXT record (the v=DMARC1; … string) or a DMARC aggregate report (the XML emailed to your rua address). It auto-detects which one you pasted.

Why is p=none flagged?

p=none only monitors — it does not block spoofed mail. The goal is to use the aggregate reports to authorize all your legitimate senders, then move to p=quarantine and finally p=reject.

Is anything uploaded?

No — the record/report is parsed entirely in your browser.

More free security tools