Free DMARC Report Analyzer
Read DMARC reports without reading XML: upload the file from the report email (.xml, .xml.gz or .zip) or paste it, and see every sender, its SPF and DKIM results, and what to fix.
Sending to a list? mailtani sends newsletters and sequences through your own Amazon SES, with no per-contact pricing.
How to Use This Tool
Get the report file
Open a DMARC report email sent to your rua= address and save the attachment: .xml.gz, .zip or .xml. No need to unzip it.
Upload it to the DMARC report reader
Upload the file or paste the XML. It's read in your browser: every sending IP, its SPF and DKIM results and your DMARC pass rate.
Fix what fails
Follow the verdict on each failing source: add a sender to SPF, set up DKIM in a service, or treat an unknown IP as possible spoofing.
What a DMARC Report Is
A DMARC aggregate report (a rua report) is a daily summary that mailbox providers send to the address in your DMARC record's rua= tag. Google, Microsoft, Yahoo and many others send them.
Each report covers one provider and usually 24 hours. It lists:
- Every IP address that sent mail with your domain in the From address
- How many messages each IP sent
- Whether each one passed SPF and DKIM, and whether it passed DMARC
It's the only place you see what really happens to mail sent as your domain, including senders you forgot about and anyone spoofing you.
Why you need a DMARC report reader
The report is an XML file, usually zipped. It's built for machines, so most people publish a DMARC record and never read a single report.
Whether you call it a DMARC analyzer, analyser, XML reader or report viewer, the job is the same: turn the XML into a list of senders and what to fix.
How to Read a DMARC Report
Every aggregate report has the same structure. Read it top to bottom:
<report_metadata>: who sent the report (org_name, for example google.com) and the period it covers (date_range, in Unix time).<policy_published>: your DMARC record as the provider saw it:p=,sp=,pct=and the alignment modesadkimandaspf.- One
<record>per sending source, with three parts:
<row>: thesource_ip, the messagecountandpolicy_evaluated, the DMARC result:dkimandspfsay pass or fail after alignment, anddispositionis what the provider did (none, quarantine, reject).<identifiers>: theheader_fromdomain, the one your readers see.<auth_results>: the raw SPF and DKIM results, with the domain each one checked.
The part that confuses everyone
A record can show SPF pass in auth_results and SPF fail in policy_evaluated. That's not a contradiction: SPF passed for some other domain (for example amazonses.com), but that domain isn't yours, so it doesn't count for DMARC.
DMARC passes when at least one of policy_evaluated dkim or spf is pass. The analyzer above reads exactly that, so the pass rate it shows is your real DMARC pass rate.
What to Do With Each Failing Source
The analyzer gives every source a verdict. These are the four cases you'll meet:
- Passes with DKIM for your domain. Nothing to do. This is the strongest result: DKIM survives forwarding.
- Passes with SPF only. Works today, but breaks when the mail is forwarded. Add DKIM for your domain in that service.
- Signed with DKIM for another domain. A service you use (a help desk, a CRM) sends as you but signs with its own domain. Set up DKIM for your domain in that service, or a custom return-path for SPF.
- Fails SPF and DKIM. Either a service you never set up, or someone spoofing your domain. Look up who owns the IP before deciding.
To fix a legitimate sender, add it to your SPF record with the SPF record generator, or publish its DKIM key and check it with the DKIM lookup tool.
Moving From p=none to Reject With Your Reports
DMARC rolls out in three steps: none (monitor), quarantine (spam folder), reject (blocked). Most teams get stuck at none because they never read the reports that would let them move on.
A common rule of thumb before moving to quarantine: about 95% of your legitimate mail passes DMARC, and every remaining failure is either fixed or known spoofing.
A safe rollout
- Stay at
p=noneand read reports for 2 to 4 weeks. - Fix every legitimate sender that fails.
- Move to
p=quarantinewithpct=10, then 50, then 100. - Move to
p=rejectonce the reports stay clean.
At each step, read the next reports before going further. The DMARC record generator builds the record for each stage.
Reading Reports at Volume
Each mailbox provider sends its own daily report, so the number of reports grows with every provider your readers use.
- Small senders: reading a report when it arrives, in a DMARC report viewer like this one, is enough.
- Higher volume: a DMARC monitoring service collects every report from your
rua=address and shows trends over time. This tool reads one report at a time and doesn't store anything.
Forensic (ruf) reports
ruf= asks for a report per failing message. Many large providers don't send them for privacy reasons, so rely on the aggregate reports. For the wider picture, see our email deliverability best practices.
Key Features
Reads .xml.gz and .zip
Upload the report as it arrives by email; it's unzipped in your browser.
A Verdict Per Source
Every sending IP gets a plain-English verdict: passing, SPF only, wrong DKIM domain, or failing both.
Real DMARC Pass Rate
Counts passes from the aligned results, not raw SPF or DKIM passes for other domains.
Failing Sources First
Sources that fail DMARC are listed at the top, biggest first.
Sample Report
Try a sample report to see what the analyzer shows before you upload your own.
Nothing Uploaded
The report is read entirely in your browser. Nothing is sent to a server or stored.
Frequently Asked Questions
Related Tools
Continue your email deliverability setup with these free tools.
Tools Are Just the Start
Once your domain is set up, mailtani handles sending, warmup, sequences, and rotation.
See How mailtani Compares
From the Blog
Make DMARC Work for You
When you add a domain, mailtani gives you the SPF, DKIM and DMARC records to publish and checks that they are live before you send.
- SPF, DKIM and DMARC records generated for your domain
- Email warmup for new senders
- Sends through your own Amazon SES
- One-time lifetime plan available
100 free emails, no card · Yearly or Lifetime when you want more
Start free with 100 emails. When you've sent them, Yearly is 10% off for 7 days.
