// how to fix
How to read DMARC aggregate reports (rua)
DMARC reports are XML files sent by Gmail, Microsoft and others. Learn what each part means and how to spot real problems and spoofing.
What it means
When your DMARC record contains a rua= address, receivers like Google, Microsoft and Yahoo send you a daily summary called an aggregate report. It lists every IP address that sent email using your domain, how many emails, and whether they passed SPF and DKIM.
v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com
The reports arrive as compressed attachments (.zip or .gz) containing an XML file. They are written for machines, but you can read them.
Why it matters
- They show all your senders, including ones you forgot: an invoicing tool, an old server, a colleague's app.
- They reveal people trying to send fake emails with your domain.
- You need them before moving DMARC from
p=nonetoquarantineorreject, to be sure nothing legitimate will be blocked.
The main parts of a report
Who sent the report
In report_metadata: org_name (for example google.com), a report_id and a date_range, usually 24 hours, written as Unix timestamps.
Your published policy
In policy_published: the DMARC record the receiver saw, such as p=none and the alignment modes.
One block per source
Each record describes one sending IP:
<source_ip>203.0.113.10</source_ip> <count>42</count> <disposition>none</disposition> <dkim>pass</dkim> <spf>fail</spf> <header_from>yourdomain.com</header_from>
count: number of emails from this IP.disposition: what the receiver did (none, quarantine, reject).dkimandspfunderpolicy_evaluated: the DMARC result, which requires the domain to match your From domain. One pass is enough for DMARC to pass.auth_results: the raw SPF and DKIM checks, with the domain that was actually checked. Compare it withheader_fromto understand alignment failures.
How to use them
- Identify each IP. Look up its reverse DNS name or owner. Names like
google.com,outlook.comor your newsletter tool's domain are usually yours. - Sort into three groups:
- Your services, passing: nothing to do.
- Your services, failing: add them to SPF, or set up DKIM with your domain in that service.
- Unknown IPs failing everything: probably spoofing. Your future
rejectpolicy will block them.
- Watch the trend for a few weeks before tightening your policy.
Note: forwarded emails and mailing lists often show up as failures from IPs you do not know. A small number is normal.
Make it easier
Reading XML by hand gets tedious once you receive many reports. Use a dedicated mailbox for rua, and consider a tool that collects and summarises the reports. The paid dashboard's DMARC monitoring does this for your domains.
Check that it is working
Scan your domain at /domain-scanner to confirm the DMARC record has a valid rua address. Reports usually start arriving within a day or two, from the providers your recipients use.
Check that it is fixed
DNS changes can take from a few minutes to a few hours. Then send a new test email or scan your domain again.
Related guides
- No SPF record on your domainYour domain does not say which servers may send email for it. Add one TXT record and receivers can tell your real emails from fakes.
- SPF error: too many DNS lookups (permerror)SPF allows at most 10 DNS lookups. Above that, the whole record breaks and receivers treat it as invalid. Here is how to slim it down.
- Several SPF records on one domainA domain must have only one SPF record. With two or more, SPF breaks for every email. Merge them into a single line.
- SPF fails: the sending server is not authorizedYour domain has an SPF record, but the server that sent your email is not in it. Find which service sent the email and add it.
- No DKIM signature on your emailsDKIM adds a digital signature that proves an email really comes from your domain. Turn it on in your email provider and publish its key in DNS.