Skip to content
Best Practices8 min read

Monitoring and Understanding DMARC Reports

DMARC reports provide valuable insights into how your email is being authenticated across the internet. This guide explains how to read, interpret, and act on DMARC report data to strengthen your email security.

What Are DMARC Reports?

When you publish a DMARC record with reporting addresses (rua and ruf tags), receiving mail servers send you data about emails claiming to be from your domain. These reports help you understand who is sending email on your behalf and whether authentication is working correctly.

Aggregate Reports (RUA)
Daily/weekly summaries of authentication results, sent as XML files
Forensic Reports (RUF)
Real-time copies of individual failed messages (limited support)

What Aggregate Reports Contain

Aggregate reports are XML files that summarize authentication results for emails sent from your domain over a reporting period (usually 24 hours). Each report includes:

Report Metadata

Organization name, report ID, date range, and contact information for the reporting entity.

Policy Published

Your DMARC policy as seen by the receiver, including domain, policy (none/quarantine/reject), and alignment modes.

Authentication Results

Per-record data showing source IP, message count, SPF/DKIM results, and policy disposition (none, quarantine, reject).

Alignment Status

Whether the From domain aligned with SPF and/or DKIM domains (strict or relaxed alignment).

Reading XML Report Data

DMARC aggregate reports arrive as XML files, often compressed (.gz or .zip). Here is a simplified example showing the key elements:

<?xml version="1.0" encoding="UTF-8"?>
<feedback>
  <report_metadata>
    <org_name>google.com</org_name>
    <email>noreply-dmarc-support@google.com</email>
    <report_id>12345678901234567890</report_id>
    <date_range>
      <begin>1704067200</begin>
      <end>1704153599</end>
    </date_range>
  </report_metadata>

  <policy_published>
    <domain>example.com</domain>
    <p>quarantine</p>
    <sp>quarantine</sp>
    <pct>100</pct>
  </policy_published>

  <record>
    <row>
      <source_ip>192.0.2.1</source_ip>
      <count>150</count>
      <policy_evaluated>
        <disposition>none</disposition>
        <dkim>pass</dkim>
        <spf>pass</spf>
      </policy_evaluated>
    </row>
    <identifiers>
      <header_from>example.com</header_from>
    </identifiers>
    <auth_results>
      <dkim>
        <domain>example.com</domain>
        <result>pass</result>
      </dkim>
      <spf>
        <domain>example.com</domain>
        <result>pass</result>
      </spf>
    </auth_results>
  </record>
</feedback>

Key fields to examine: Look at the source_ip, disposition, and auth_results to understand which IPs are sending mail and whether they pass authentication.

Common Issues Revealed in Reports

DMARC reports often reveal problems you did not know existed. Here are the most common issues to watch for.

Failed SPF/DKIM Alignment

SPF or DKIM may pass, but if the domain does not align with the From header, DMARC will fail. This often happens when:

  • Third-party services send on your behalf without proper DKIM signing
  • Email forwarding breaks SPF alignment
  • Marketing platforms use their own domain in the envelope sender
  • Subdomains are used without corresponding authentication records

Unknown or Unauthorized Senders

Reports may show IPs you do not recognize sending mail as your domain. These could be:

  • Spoofing attempts or phishing campaigns using your domain
  • Legitimate services you forgot about (old marketing tools, CRM systems)
  • Shadow IT - employees using unauthorized email services
  • Compromised servers sending spam

Inconsistent Authentication

Some messages pass while others fail from the same source:

  • DKIM key rotation issues causing intermittent failures
  • Load balancers or CDNs not in your SPF record
  • DNS propagation delays after record changes
  • Misconfigured email servers with inconsistent signing

Third-Party DMARC Report Analyzers

Manually parsing XML reports is tedious and error-prone. DMARC report analyzers aggregate your reports, visualize trends, and alert you to issues. Popular options include:

ServiceFree TierKey Features
DMARC AnalyzerYes (limited)Visual dashboards, forensic viewer
Postmark DMARCYes (free)Weekly digests, simple interface
ValimailTrial onlyEnterprise features, automation
dmarcianYes (limited)Detailed analysis, guidance tools
EasyDMARCYes (limited)Smart reports, sender identification

To use these services, update your DMARC record's rua tag to point to the analyzer's reporting address alongside or instead of your own.

Acting on Report Data

DMARC reports are only valuable if you act on them. Follow this process to improve your email authentication:

Step 1: Identify All Legitimate Senders

Review source IPs in your reports and identify which ones belong to services you use. Use reverse DNS lookups and IP geolocation to help identify unknown senders.

# Reverse DNS lookup
dig -x 192.0.2.1

# Or use nslookup
nslookup 192.0.2.1

Step 2: Update SPF Records

Add missing authorized senders to your SPF record. Be mindful of the 10 DNS lookup limit.

Step 3: Configure DKIM for Third Parties

Work with your email service providers to enable DKIM signing with your domain. Most major ESPs support custom DKIM.

Step 4: Gradually Tighten Your Policy

Once legitimate senders pass consistently, move from p=none to p=quarantine, then eventually to p=reject:

# Start with monitoring
v=DMARC1; p=none; rua=mailto:dmarc@example.com

# Move to quarantine (after 2-4 weeks of clean reports)
v=DMARC1; p=quarantine; pct=25; rua=mailto:dmarc@example.com

# Increase percentage gradually
v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc@example.com

# Finally, enforce reject
v=DMARC1; p=reject; rua=mailto:dmarc@example.com

Forensic Reports vs Aggregate Reports

DMARC defines two types of reports, each serving different purposes:

Aggregate Reports (RUA)

  • - Sent daily or weekly
  • - Summarized statistics only
  • - No message content
  • - Widely supported by receivers
  • - Lower privacy concerns
  • - Best for trend analysis

Forensic Reports (RUF)

  • - Sent in real-time
  • - Individual message details
  • - May include headers/body
  • - Limited receiver support
  • - Privacy concerns (GDPR)
  • - Best for investigating specific failures

Note: Many large email providers (including Gmail) do not send forensic reports due to privacy concerns. Do not rely on RUF reports as your primary monitoring mechanism.

To receive forensic reports, add the ruf tag to your DMARC record:

v=DMARC1; p=quarantine; rua=mailto:dmarc-agg@example.com; ruf=mailto:dmarc-forensic@example.com; fo=1

The fo tag controls when forensic reports are generated:

  • fo=0 - Generate if all mechanisms fail (default)
  • fo=1 - Generate if any mechanism fails
  • fo=d - Generate if DKIM fails
  • fo=s - Generate if SPF fails

Summary

  • 1.Publish a DMARC record with rua address to receive aggregate reports
  • 2.Use a third-party analyzer to visualize and interpret report data
  • 3.Identify all legitimate senders and ensure they pass SPF/DKIM alignment
  • 4.Investigate unknown senders to distinguish spoofing from forgotten services
  • 5.Gradually tighten your DMARC policy from none to quarantine to reject

Resources

Check Your DMARC Configuration

Use our scanner to verify your DMARC record is properly configured and see if you are ready to receive reports.

Scan Your Domain