What Does SPF PASS Mean?
What an SPF pass proves, what it does not, and how it fits with DKIM and DMARC.
Seeing spf=pass in an Authentication-Results header is reassuring, but it is easy to read too much into it. It answers a narrow question.
What SPF PASS means
The receiving server looked at the domain used as the envelope sender, which appears as Return-Path or smtp.mailfrom, fetched that domain's SPF record from DNS and found that the IP address of the connecting server is permitted. If the envelope sender is empty, the HELO name is checked instead.
Authentication-Results: mx.example.net;
spf=pass [email protected]What it does not mean
- It does not check the visible From address, so it does not stop someone forging that.
- It does not mean the message content is safe or wanted.
- It does not prove who the person sending the message is.
- On its own it does not satisfy DMARC unless the SPF domain aligns with the From domain.
Reported result vs record lookup
The header records what the receiving server found at the time. A different tool that looks up a domain's SPF record today shows what the domain publishes now, which is a different question. The Email Header Analyzer reads the reported result and does not perform an SPF lookup, so it never claims a pass just because a domain has a record.
Why a pass can sit next to a DMARC fail
A service can send with its own bounce domain, pass SPF for that domain and still fail DMARC for the From domain because the identities do not align. This is the same reason newsletters commonly rely on DKIM alignment.
Other results at a glance
| Result | Meaning |
|---|---|
| pass | The IP is authorized |
| fail | The IP is not authorized |
| softfail | Probably not authorized, treat leniently |
| neutral | No assertion |
| none | No SPF record found |
| temperror / permerror | DNS trouble or a broken record |
For the bigger picture, see SPF vs DKIM vs DMARC Explained. To share a header excerpt, mask addresses first with the Log Sanitizer.
Frequently asked questions
- Does SPF PASS mean the email is legitimate?
- No. It means the connecting server is authorized by the envelope-sender domain. A malicious sender can pass SPF for a domain they own.
- Why does SPF fail after forwarding?
- A forwarder sends from its own IP address, which the original domain's SPF record does not list.
- What is the difference between SPF softfail and fail?
- Softfail says the sender is probably not authorized but asks receivers to be lenient. Fail says the sender is not authorized.
Try it yourself
The tool that pairs with this guide.
Did this help you tighten your security headers?
If these free developer tools save you time, consider buying me a byte. Your support helps keep DevCraftKit free and growing.
Related articles
HTTP Security Headers Explained: A Practical Developer Guide
A handful of response headers tell the browser how to defend the page they came with. Here's what each one actually does.
Published
Content-Security-Policy (CSP) Explained With Examples
CSP is an allow-list for where your page's resources can load from. Here's how the directives fit together.
Published
What Is HSTS? Strict-Transport-Security Explained
HSTS closes a narrow but real window for downgrade attacks. Here's exactly what it enforces and how to configure it.
Published