DMARC Report Analyzer

Find out who sends email as your domain and what would break at p=reject, from the report emails you already get.

DMARC Report Analyzer cover

What it does

Turn the DMARC aggregate reports that land in your inbox (XML, .gz and .zip attachments from Google, Microsoft, Yahoo and others) into a plain answer: who sends email as your domain, what passes, what would be blocked if you moved to p=quarantine or p=reject, and exactly which sender to fix.

python3 -m dmarcx ~/Downloads/dmarc-reports/ --csv reports       # a folder of .xml/.gz/.zip/.eml files
python3 -m dmarcx DMARC.mbox --domain example.com                  # a mail folder exported as mbox
python3 -m dmarcx reports/*.zip --json > dmarc.json

Demo output

The screenshot is real output from the kit’s own commands. Tested from a fresh download of this exact zip: ./run_tests.sh ran 6 tests OK on Python 3.13 and 3.10.

Real terminal output from DMARC Report Analyzer: demo and passing tests

What you get

  • Policy and pass rate: your published policy (p, sp, np, t / pct), messages per receiver and per day, and the share passing DMARC.
  • Sources: every sender grouped by service (Google Workspace, Microsoft 365, Amazon SES, SendGrid, Mailgun, Mailchimp, Mandrill, SparkPost, Postmark, Zendesk, Salesforce, HubSpot, recognised by their signing and return-path domains) or by the domain they authenticate as, with DKIM- and SPF-aligned counts, IPs, selectors and what receivers did.
  • Verdicts: ok, fix alignment (a service you use sends as you without your DKIM), unknown sender (authenticates only as itself: a tool you forgot, or spoofing), unauthorised or forwarded (passes nothing; forwarding and mailing lists flagged when the receiver says so).
  • Findings: p=none still delivers spoofed mail, senders to fix before moving to quarantine/reject, SPF-only senders that break when forwarded, t=y test mode, pct (removed in DMARCbis), errors receivers reported, and when you're ready for a stricter policy.
  • CSV (--csv DIR): sources.csv, records.csv (every row of every report) and daily.csv.

Formats

RFC 9990 (DMARCbis, May 2026, urn:ietf:params:xml:ns:dmarc-2.0: np, testing, discovery_method, generator) and the older RFC 7489 format; .xml, .xml.gz/.gz, .zip, .eml and .mbox; folders are read recursively. The same report delivered twice is counted once. Reports with DTDs or entities are refused, and decompressed reports are capped at 50 MB.

Agent skill

skills/dmarc-reports/SKILL.md tells Claude Code (or any agent that reads skills) how to run it and explain the results. Copy it into .claude/skills/; the kit is also a Claude Code plugin (.claude-plugin/plugin.json).

Run ./demo.sh for the example (3 reports, 2,473 messages, SendGrid not set up, a spoofer, a mailing list) and ./run_tests.sh for the tests. Python 3.9+, no dependencies, works offline (--rdns does DNS lookups).

Honest limits

It reads the reports receivers send; receivers that don't report (or report late) are missing. It shows what to fix, not how each service's DNS setup works: follow that provider's DKIM setup guide. It doesn't check your DNS records; use the free Email Auth Checker for SPF, DKIM and DMARC records.

Pairs with the free Email Auth Checker. License: LICENSE.txt.

Format and license

Zip, 19 KB, v1.0, 16 files. You may use and modify this kit for your own work and for clients you serve, including paid client work. Not affiliated with or endorsed by any mailbox provider.

FAQ

Do I need to forward reports to a service?
No, point it at the files or an exported mail folder on your computer.
Does it support the new DMARCbis reports?
Yes, RFC 9990 (May 2026) and the older RFC 7489 format.
Will it change my DNS?
No, it reads reports and tells you which sender to fix.
How do I get the files?
Right after payment, Stripe’s confirmation page shows your download link.
Refunds?
Email hello@youraitools.co within 14 days if it doesn’t work and we can’t fix it.
Can I pay with crypto?
Yes. Pay the same price in USDC or USDT on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana from the "Pay with crypto" button, with no account or KYC. We check the payment on-chain and show your download links as soon as it confirms.

Get DMARC Report Analyzer

Read DMARC aggregate reports (.xml, .gz, .zip, .eml, mbox) on your computer: senders, alignment, what p=reject would block, what to fix. $19 once.

Pairs well with

DownloadFree

Email Auth Checker (Free)

Free SPF, DKIM and DMARC checker: SPF 10-lookup limit, DMARC tags and report authorisation, DKIM key size, MTA-STS and TLS-RPT. No account.

View Email Auth Checker (Free)
Download$19

Keyword Cannibalization Checker Skill

Find keyword cannibalization in Search Console data: pages splitting the same query, ranking flips, competing pairs, with merge-or-sharpen advice. $19.

View Keyword Cannibalization Checker Skill
Download$19

Content Decay Finder Skill

Find pages losing Google clicks and why: rankings, demand or click-through, with lost queries and a refresh plan. Reads Search Console exports. $19 once.

View Content Decay Finder Skill

Related