Email Security

How to handle DMARC forensic reports?

DMARC forensic reports provide detailed information about authentication failures. Learn how to interpret and respond to forensic data for improved email security.

By Inventive HQ Team

Understanding DMARC Forensic Reports

A DMARC forensic report (RUF, also called a failure report) is a per-message sample that a receiving mail server generates the moment a message claiming to be from your domain fails authentication — it contains the message headers and, sometimes, redacted body content, so you can see exactly what a spoofed or misconfigured email looked like. You request them with the ruf= tag in your DMARC record, and you handle each one by pulling out the source IP, matching it against your inventory of legitimate senders, and deciding whether it is a misconfigured service you need to fix or an attacker you need to block and report.

That is the summary an AI Overview gives you. Here is what it cannot show you: in 2026 the large mailbox providers — Gmail, Google Workspace, Microsoft 365, and Yahoo — do not send forensic reports at all, so most domains that add a ruf= tag receive little or nothing and wrongly conclude their DMARC is broken. Below is the decision flow for triaging the reports you do get, a table of who actually sends them, and a symptom→cause→fix reference for the failure reasons you will see in the wild.

DMARC forensic report triage flow A forensic report arrives, you extract the source IP, check it against known senders, and branch to fix, block, or reconfigure. Forensic report triage: one message at a time RUF report arrives MIME message, AFRF Extract source IP + From, DKIM, SPF result Known sender? YES Legitimate but failing Add IP to SPF or fix DKIM alignment Re-check on next reports NO Abuse / spoof Document IP, report Enforce p=reject Reality check Google, Microsoft & Yahoo send no RUF — lean on RUA Golden rule Aggregate (RUA) reports are the authoritative source of truth. Treat every forensic (RUF) report as a bonus deep-dive, never the primary signal.

DMARC forensic reports (the RUF stream) sit alongside aggregate RUA reports. While aggregate reports show high-level statistics for every provider, forensic reports contain actual message samples that failed authentication, enabling detailed analysis — when you can get them. Properly interpreting and acting on the reports you receive helps you identify and fix email infrastructure problems, detect spoofing attacks, and improve your overall email security posture.

Who Actually Sends Forensic Reports?

This is the single most important thing to understand before you build any process around RUF data. Coverage collapsed years ago over privacy and liability concerns, so your ruf= inbox will be far quieter than the DMARC specification implies.

ProviderSends RUF forensic reports?What to rely on instead
Gmail / Google WorkspaceNoRUA aggregate reports
Microsoft 365 / Outlook.comNoRUA aggregate reports
Yahoo / AOLNoRUA aggregate reports
Comcast, some ISPs & telecomsSometimesRUF when it arrives, RUA as baseline
Certain enterprise/EU gatewaysSometimesRUF for deep-dives
What you should doAssume near-zero RUF volumeBuild your program on RUA; use a DMARC processor to parse XML at scale

If you need message-level forensic detail and the reporting providers won't give it to you, the practical alternative is your own inbound mail logs and header analysis on messages you catch, not the RUF stream.

Types of DMARC Reports

Aggregate Reports (RUA)

Aggregate reports summarize authentication results:

  • Daily summaries grouped by sending domain and IP
  • High-level pass/fail statistics
  • No actual message content
  • Generally safe to share

Forensic Reports (RUF)

Forensic reports contain specific message samples:

  • Individual messages that failed authentication
  • DKIM/SPF failure reasons
  • Message headers and partial content
  • May contain sensitive information
  • Useful for troubleshooting and abuse investigation

Setting Report Preferences

v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:dmarc-forensic@example.com; fo=1
  • rua: Email address for aggregate reports
  • ruf: Email address for forensic reports
  • fo=0 (default): Generate a report only when every mechanism fails to produce an aligned pass — i.e. a full DMARC failure
  • fo=1: Generate a report when any mechanism (SPF or DKIM) fails alignment, even if DMARC overall still passes — the most useful setting for troubleshooting
  • fo=d: Generate a report on DKIM failure specifically; fo=s: on SPF failure specifically

Note the common misconception: fo=0 is not "only DMARC failures" versus fo=1 "all failures" in a loose sense — the distinction is whether any one mechanism failing triggers a report (fo=1) or only total failure does (fo=0).

Interpreting Forensic Report Data

Report Structure

Forensic reports contain:

  • Report metadata (date, sending domain, reporting organization)
  • Message headers (From, To, Subject, Date)
  • DKIM signatures and verification results
  • SPF check results
  • DMARC alignment assessment
Advertisement

Understanding Failure Reasons

DKIM Failures:

  • Signature not present
  • Signature verification failed
  • Signature expired
  • Invalid signature format

SPF Failures:

  • IP not in SPF record
  • SPF record malformed
  • Too many DNS lookups (SPF max)
  • Hard fail policy applied

DMARC Alignment:

  • From domain doesn't align with DKIM signature domain
  • From domain doesn't align with SPF result domain

Failure Reason Reference: Symptom → Cause → Fix

When a report does land, the failure reason string tells you where to look. This is the lookup table to keep next to your report inbox.

Symptom in the reportMost likely causeFix
DKIM: signature not presentSending service was never configured to sign, or signs with a different domainEnable DKIM signing at the service; publish its selector._domainkey record
DKIM: signature verification failedMessage body altered in transit (a list server, footer injector, or gateway rewrite)Identify the mangling hop; move DKIM signing after it, or exclude the rewrite
DKIM: signature expired (x=)Long delivery delay or a clock/TTL issue on the signerLengthen or remove the x= expiry; check signer time sync
SPF: IP not in recordA legitimate new sender (marketing tool, CRM) not yet authorizedAdd the service's include: or IP to your SPF record
SPF: too many DNS lookupsSPF record exceeds the 10-lookup limit (RFC 7208)Flatten nested includes; remove unused senders
DMARC: identifier alignment failureSPF/DKIM pass but on a domain that doesn't match the From headerAlign the return-path or DKIM d= domain to your organizational domain
Unknown IP, both SPF and DKIM failSpoofing / direct-domain abuseConfirm against your sender inventory, then block, report, and enforce p=reject
Forwarded mail failing SPF only, DKIM passesLegitimate forwarding breaks SPF (path changes)Rely on DKIM alignment; this is expected — do not chase it

Common Forensic Report Scenarios

Scenario 1: Legitimate Mail Infrastructure Issues

Signs:

  • Reports show consistent sending IPs
  • Known email services (Salesforce, HubSpot, etc.)
  • Regular patterns

Response:

  1. Identify which service is sending
  2. Update DKIM records for that service
  3. Add IP to SPF record
  4. Verify records with service documentation
  5. Monitor forensic reports for improvement

Example:

DKIM failure: HubSpot newsletter sending from IP 123.45.67.89
- Add to SPF: `include:hubspot.com`
- Verify DKIM domain alignment
- Wait 48 hours for DNS propagation
- Monitor next forensic reports

Scenario 2: Potential Phishing/Spoofing

Signs:

  • Unknown sender IPs
  • No legitimate mail source identified
  • Attempting to send as your domain
  • Failed DKIM and SPF checks

Response:

  1. Document attacker IP addresses
  2. Report to abuse contacts
  3. Strengthen authentication policies
  4. Implement BIMI for visual branding
  5. Consider implementing DMARC quarantine/reject

Example:

Forensic report shows emails failing DKIM/SPF from IP 192.0.2.1
- IP not in known services
- Attempting to spoof noreply@yourdomain.com
- No legitimate reason for this mail

Actions:
1. Block IP at firewall level
2. Report to ISP abuse contact
3. Monitor for related IPs
4. Ensure DMARC policy is enforce (p=reject)

Scenario 3: User Device/Misconfiguration

Signs:

  • Reports from employee IP ranges
  • Clients using older protocols
  • Signature mismatches

Response:

  1. Contact users about mail client issues
  2. Provide correct client configuration
  3. Update mobile device policies
  4. Ensure proper SMTP authentication

Processing Forensic Reports at Scale

Automated Report Processing

Many organizations receive hundreds of forensic reports daily. Automation helps:

# Parse forensic reports
# Extract sending IPs
# Group by origin
# Alert on suspicious patterns

Creating Forensic Dashboards

Track forensic data over time:

  • Percentage of mail passing DKIM/SPF
  • Top failure reasons
  • Suspicious IPs and origins
  • Trends and patterns

This identifies emerging issues early.

Responding to Forensic Reports

Investigation Process

Step 1: Gather Information

  • Identify sending domain
  • Note sending IP address
  • Review failure reason
  • Check message content

Step 2: Determine Legitimacy

  • Is this a known service? (Check documentation)
  • Is this expected mail? (Customer notification? Billing?)
  • Is this an authorized system? (Employee tool? Partner service?)

Step 3: Categorize

  • Legitimate but misconfigured
  • Legitimate but authentication issue
  • Malicious/spoofing attempt
  • Spam or abuse

Step 4: Take Action

  • Fix authentication for legitimate sources
  • Block or report malicious sources
  • Document resolution steps

Managing Forensic Report Privacy

Sensitive Information Concerns

Forensic reports may contain:

  • Usernames and passwords in message headers
  • Personal identification information
  • Credit card numbers in email content
  • Confidential business information

Privacy Practices

  1. Restrict access: Limit who can view forensic reports
  2. Redact sensitive data: Remove PII before analysis/sharing
  3. Secure storage: Encrypt forensic report archives
  4. Data retention: Delete old reports according to policy
  5. Compliance: Ensure GDPR/privacy law compliance

Sharing Forensic Reports

Be cautious when sharing:

  • Never include original message content
  • Redact sender/recipient addresses
  • Remove subject lines with sensitive info
  • Share only failure reason and metadata

Integrating Forensic Data with Security Tools

SIEM Integration

Send forensic data to security tools:

  • Parse report emails automatically
  • Extract IPs and domains
  • Correlate with other security events
  • Alert on suspicious patterns

SOAR Playbooks

Automate response:

  • When spoofing attempt detected → block IP
  • When new service detected → research documentation
  • When authentication failures spike → alert security team

Threat Intelligence

Use forensic data for broader insights:

  • Identify attack patterns
  • Track attacker infrastructure
  • Share with industry groups
  • Contribute to threat databases

Best Practices for Forensic Report Handling

1. Set Appropriate Report Preferences

v=DMARC1; p=reject; rua=mailto:dmarc@example.com; ruf=mailto:dmarc@example.com; fo=1; rf=afrf; pct=100
  • fo=1: Get forensic reports for all failures (better visibility)
  • pct=100: Get reports for all messages initially
  • rf=afrf: Use standard report format

2. Process Reports Regularly

  • Review forensic reports daily or at minimum weekly
  • Identify patterns and trends
  • Track resolution of known issues
  • Monitor DKIM/SPF pass rates

3. Maintain Forensic Infrastructure

  • Keep forensic email addresses monitored
  • Archive reports for historical analysis
  • Implement automated parsing
  • Set up alerts for anomalies

4. Correlate Multiple Data Sources

  • Combine with aggregate reports
  • Cross-reference with logs
  • Verify with mail service documentation
  • Check threat intelligence

5. Take Iterative Action

  • Fix issues as identified
  • Adjust DMARC policies gradually
  • Test before enforcement
  • Monitor results

Troubleshooting Common Issues

Not Receiving Forensic Reports

Possible causes:

  • Reporting email address is wrong
  • Email address isn't validated
  • Forensic reports are disabled (fo=0)
  • Reports being filtered as spam

Solutions:

# Verify DMARC record
dig _dmarc.yourdomain.com TXT

# Check reporting address is valid
dig yourdomain.com MX

# Ensure ruf parameter is correct
# Check spam filters for reports

Too Many Forensic Reports

Issue: Overwhelmed with false-positive forensic data

Solutions:

  • Set fo=0 (only true failures)
  • Adjust percentage sampling (pct=50)
  • Filter reports by domain
  • Implement automated filtering

Forensic Reports Won't Parse

Issue: Report format issues or corrupted data

Solutions:

  • Verify reports are proper MIME format
  • Check for encoding issues
  • Ensure proper email parsing library
  • Contact reporting organization

Conclusion

DMARC forensic reports provide valuable intelligence about mail authentication and potential abuse. By understanding how to interpret forensic data, categorize issues, and take appropriate action, organizations can:

  • Identify legitimate mail infrastructure problems
  • Detect and respond to spoofing attempts
  • Improve email security posture
  • Build comprehensive email authentication strategy

Effective forensic report handling requires regular monitoring, proper categorization, and systematic response to issues identified. Combined with aggregate reports and threat intelligence, forensic data becomes a powerful tool for understanding your email ecosystem and protecting against abuse.

Whether you're deploying DMARC for the first time or optimizing an existing implementation, paying attention to forensic report insights significantly improves your ability to secure email and prevent domain spoofing attacks.

Frequently Asked Questions

What is the difference between DMARC RUA and RUF reports?

RUA (aggregate) reports are daily XML summaries grouped by sending IP and result — pass/fail counts with no message content, and nearly every mailbox provider sends them. RUF (forensic, also called failure) reports are per-message samples that include headers and sometimes redacted body content generated at the moment authentication fails. RUA tells you the scale of a problem; RUF tells you what a single failing message actually looked like.

Why am I not receiving any DMARC forensic (RUF) reports?

In most cases nothing is broken — the large mailbox providers simply do not send them. Gmail, Google Workspace, Microsoft 365/Outlook, and Yahoo all omit RUF reports for privacy and liability reasons, so even a perfect ruf= tag produces little or no traffic. A handful of providers (some enterprise gateways, a few European and telecom operators) still emit them. Confirm your ruf address is valid, on the same organizational domain, and not being spam filtered, then set expectations low.

What does the DMARC fo tag control?

The fo (failure options) tag decides when a receiver should generate a forensic report. fo=0 (the default) generates a report only when every authentication mechanism fails to produce an aligned pass — a full DMARC failure. fo=1 generates a report when any mechanism (SPF or DKIM) fails alignment, even if DMARC overall still passes, which gives far more visibility. fo=d requests a report on DKIM failure specifically and fo=s on SPF failure.

Are DMARC forensic reports a privacy risk?

They can be. A forensic report is a copy of a failing message, so it may carry recipient addresses, subject lines, and body fragments that include personal data or confidential information. Under GDPR and similar laws that makes the report inbox a system holding personal data. Restrict access, redact before sharing, encrypt archives, and set a short retention window — this is a large part of why providers stopped sending them.

How do I tell a spoofing attempt from a legitimate misconfiguration in a report?

Look at the source IP and its consistency. Legitimate but misconfigured mail comes from a stable set of IPs belonging to a known service (a marketing platform, ticketing system, or your own gateway) and fails in a predictable, repeatable way. Spoofing shows unknown or geographically scattered IPs with no business relationship, often forging a noreply or exec address, failing both SPF and DKIM. Cross-reference the IP against your sending inventory and the aggregate report before deciding.

Should I use fo=1 or fo=0 for forensic reporting?

Use fo=1 during initial DMARC rollout and troubleshooting so you capture every mechanism failure, including partial ones that fo=0 would hide. Once your legitimate senders are aligned and you are only monitoring for abuse, fo=0 reduces noise by reporting only full DMARC failures. Because so few providers honor RUF at all, the practical volume difference is usually small.

Do forensic reports replace aggregate reports?

No. Aggregate (RUA) reports are the backbone of any DMARC program because every major provider sends them and they show your full sending landscape over time. Forensic (RUF) reports are a supplementary, best-effort signal for deep-diving a specific failure. Run RUA as the authoritative source and treat any RUF data you receive as a bonus, not a substitute.

What report format do DMARC forensic reports use?

Forensic reports use AFRF (Authentication Failure Reporting Format), an extension of the Abuse Reporting Format defined in RFC 5965 and RFC 6591. You request it with the rf=afrf tag, though afrf is the only widely supported value, so setting it is largely a formality. Each report arrives as a MIME message containing the failure metadata plus the sample message.

DMARCforensic reportsemail securityauthenticationSPF/DKIM