← RFC Reference

RFC 6652: SPF Authentication Failure Reporting

Current Standard Abuse Reporting & Feedback SPFAFRFFailure ReportingAuthentication
ELI5: SPF lets you declare which servers are allowed to send email for your domain. But what happens when someone fails the check — either a spoofer or a legitimate server you forgot to authorize? RFC 6652 lets you publish a DNS record that says “if SPF fails for my domain, send me a failure report to this address.” You get individual forensic reports for each failure, helping you find misconfigured senders and spoofing attempts.

Why This Exists

SPF (RFC 7208) validates that a sending IP is authorized for the envelope sender domain. When SPF fails, it could mean:

Without failure reports, you are blind to these events. DMARC aggregate reports (RFC 7489) give you daily summaries, but RFC 6652 provides per-message forensic reports specifically for SPF failures. These reports use the ARF format (RFC 5965) with the auth-failure feedback type extended by RFC 6591.

How It Works

The domain owner publishes a special DNS TXT record at _spf._report.<domain> that tells receivers where to send SPF failure reports.

DNS Record

; Request SPF failure reports be sent to this address
_spf._report.example.com.  IN TXT  "v=spf-report1; ra=spf-reports; rp=100; rr=all"

Record Fields

Tag Meaning Example
v Version (must be spf-report1) v=spf-report1
ra Reporting address local-part (report sent to ra@domain) ra=spf-reportsspf-reports@example.com
rp Reporting percentage (0–100) rp=100 (report all failures)
rr Report requested for which results rr=all, rr=fail, rr=softfail

Example Failure Report (ARF Format)

From: arf-generator@receiver.example
To: spf-reports@example.com
Subject: SPF failure report for example.com
Content-Type: multipart/report; report-type=feedback-report;
    boundary="SPF-REPORT-001"

--SPF-REPORT-001
Content-Type: text/plain

SPF authentication failure report for a message
claiming to be from example.com.

--SPF-REPORT-001
Content-Type: message/feedback-report

Feedback-Type: auth-failure
User-Agent: Receiver-MTA/2.0
Version: 1
Auth-Failure: spf
Authentication-Results: receiver.example;
    spf=fail smtp.mailfrom=example.com
Original-Mail-From: user@example.com
Source-IP: 198.51.100.50
Reported-Domain: example.com
Delivery-Result: reject

--SPF-REPORT-001
Content-Type: text/rfc822-headers

From: user@example.com
To: recipient@receiver.example
Subject: Important update
Message-ID: <msg-001@example.com>

--SPF-REPORT-001--

Key Technical Details

Auth-Failure Field Values for SPF

Value When Sent
spf SPF evaluation returned fail, softfail, or other non-pass result

The Auth-Failure field distinguishes SPF reports from DKIM or DMARC failure reports that also use the auth-failure feedback type (defined in RFC 6591).

Relationship to DMARC Reporting

DMARC (RFC 7489) has its own reporting mechanism with two types:

RFC 6652 reports are SPF-specific and independent of DMARC. In practice, most receivers generate DMARC aggregate reports (widely supported) but few generate RFC 6652 or DMARC forensic reports due to privacy concerns. However, where supported, RFC 6652 reports provide the most detailed per-failure data for SPF specifically.

Privacy Considerations

Failure reports may contain recipient addresses and message headers, raising privacy concerns. Many receivers limit what they include or do not generate these reports at all. The rp tag lets the domain owner request a percentage less than 100 to reduce report volume.

Common Mistakes

Deliverability Impact

Related RFCs