DMARC report viewer

Runs in your browser. The report files you open are read by the code on this page and go nowhere: MailSetupCheck has no server, and this tool makes no network requests at all.

Reports from Google and Yahoo arrive as .zip or .gz attachments: unzip a .zip first, then open the .xml inside. Reports name sending IP addresses and your domain; they stay in this tab.

What an aggregate report is

When your domain publishes a DMARC record with a rua= address, mailbox providers that check mail claiming to be from your domain send you a daily XML summary. It lists, per sending IP address, how many messages arrived, what SPF and DKIM concluded, and whether DMARC passed. It contains no message bodies or subject lines. The format is defined in RFC 9990 (earlier RFC 7489 appendix C).

Raw XML is hard to read, and a busy domain gets dozens of files a day. Paid services turn them into dashboards. For a small domain, opening a few files is often enough to find the one or two senders that are misconfigured.

How to read the result

Before you tighten the policy

  1. Read at least two weeks of reports, so monthly mailers (invoices, newsletters) appear.
  2. Fix every source you recognize until it passes on its own domain, preferably through both SPF and DKIM.
  3. Move to p=quarantine with pct= set low, raise it step by step, then repeat for p=reject. The DMARC rollout guide has the order and the Gmail and Yahoo sender requirements explain why bulk senders need this anyway.

What it cannot tell you

File handling

The viewer reads each file as plain text in the page, or decompresses a .gz file with the browser's own decompressor. Nothing is uploaded. XML with a DOCTYPE declaration is refused, files over 5 MB are refused, and only the five standard XML entities are expanded.

Sources: RFC 9989 (DMARC), RFC 9990 (DMARC aggregate reporting), RFC 7208 (SPF), RFC 6376 (DKIM), Google's sender guidelines.

Also available as Markdown.