Open DMARC aggregate (rua) reports in your browser: drop the .xml, .gz or .zip files from Google, Microsoft, Yahoo and other receivers to see every sending IP, SPF and DKIM alignment, the pass rate and policy issues, then export a CSV. Nothing is uploaded.
Private by design: report files are read, decompressed and parsed by JavaScript in this page, using your browser's own DOMParser and DecompressionStream. Nothing is uploaded or sent anywhere, so it is safe to use with real reports.
You can also drop files onto this box. Up to 50 MB at a time (compressed and uncompressed). Load sample fills in two made-up reports for example.com that use documentation IP addresses (192.0.2.x, 198.51.100.x, 203.0.113.x and 2001:db8::).
Choose or drop your DMARC aggregate report files, paste the XML, or click Load sample.
org_name, email), its report_id and the date_range it covers (begin and end in seconds since 1970, UTC).domain, p, sp, adkim, aspf and pct (RFC 7489), plus np, testing and discovery_method in the newer RFC 9990 format.source_ip), how many messages it sent (count) and policy_evaluated: the disposition the receiver applied (none, quarantine or reject; RFC 9990 adds pass) and the aligned DKIM and SPF results (pass or fail). A message passes DMARC when either of those is pass.forwarded, sampled_out (left out by pct), trusted_forwarder, mailing_list, local_policy and other; RFC 9990 drops forwarded and sampled_out and adds policy_test_mode.header_from (the From domain people see) and envelope_from (the Return-Path / MAIL FROM domain).domain d=, selector s=, result) and SPF result (domain, scope, result) before alignment. A pass here that is a fail in policy_evaluated means the domain did not align with header_from.rua= tag, usually once a day each. Every report is an email with an XML attachment, normally gzip-compressed (.xml.gz); some receivers send a .zip instead. Getting none? Check that your record has rua=mailto: with the DMARC Record Checker.p=quarantine or p=reject will stop.forwarded, trusted_forwarder or mailing_list, and unfamiliar IPs where only DKIM passed, are usually mail that recipients forwarded or lists reposted. Read why DMARC fails after forwarding or on mailing lists before moving to p=reject.Need SPF, DMARC and MX checks across a whole client list? Run the Bulk SPF / DMARC / MX Auditor on Apify ($2 per 1,000 domains).
Check the live record with the DMARC Record Checker and build the next one (quarantine, reject, pct, rua) with the DMARC Record Generator. Test SPF, DKIM, DMARC and MX together with the Email Deliverability Checker, and see how one message was authenticated with the Email Header Analyzer. Step-by-step rollouts: DMARC for Microsoft 365, SPF, DKIM and DMARC for Google Workspace and the Gmail, Yahoo and Outlook bulk sender rules.
An XML file that a receiving mail system (Google, Microsoft, Yahoo and others) sends to the address in your DMARC record's rua= tag, usually once a day. It lists every IP address that sent mail using your domain in the From address, how many messages each sent, the SPF and DKIM results, and what the receiver did with the mail. It contains no message content.
No. The files are read, decompressed and parsed by JavaScript inside this page using the browser's own DOMParser and DecompressionStream. Nothing is sent to this site or any other server, and the page does no DNS or IP lookups on the data.
Choose or drop it on this page as it is; there is no need to extract it first. Reports are normally gzip-compressed XML (.xml.gz), and some receivers send a .zip instead. To read one by hand, extract it with 7-Zip, gunzip or tar and open the .xml file in a text editor.
DMARC only counts a pass that aligns with the From domain. The auth_results part of the report shows raw SPF and DKIM results, and policy_evaluated shows the aligned ones. If an email service sends with its own bounce domain or signs with its own d= domain, SPF or DKIM passes for that domain, but DMARC still fails until it signs with your domain or uses a Return-Path in your domain.
When a few weeks of reports, including month-end runs, show every legitimate source passing aligned SPF or DKIM, and the only failing sources are ones you don't recognise. Then publish p=quarantine, check the reports again, and finish at p=reject.
Runbooks, checklists and helpdesk templates: IT Admin Packs on Gumroad.