[ SPF ]

SPF passes in a tool but fails at the recipient

A checker and recipient can evaluate different identities, routes or DNS states. Reconstruct the recipient’s actual inputs before changing the policy.

By the EmailAuth research team · 3 min read

[ Key points ]

  • Separate syntax checking from a connection-specific SPF evaluation.
  • Compare IP, SMTP identity, DNS state and observation time.
  • Repair the confirmed cause without broadening unexplained permissions.
On this page

“SPF passes in the tool” and “the recipient reports SPF failure” are not necessarily contradictory. The tool may have validated syntax, tested a different IP or queried newer DNS. The recipient evaluated a particular SMTP connection. Diagnosis starts by reconstructing that connection, not by assuming either result must be wrong.

Identify what the tool actually passed

Save the tool's inputs and exact output. A valid-record indicator is not necessarily an SPF pass for a message. If it performed an evaluation, record the IP address, envelope sender, HELO where relevant and query time. Keep the distinction visible when reporting the incident to other teams.

Then collect the destination's trusted authentication result or SMTP rejection evidence. Do not treat a sender-supplied Authentication-Results field as the destination's verdict. RFC 8601 explains why results need a trust boundary.

Compare the identity and connecting address

SPF evaluates the connection against the relevant SMTP identity, not merely the visible From address. RFC 7208 §2.3 and RFC 7208 §2.4 describe HELO and MAIL FROM checks. Compare the receiver-observed IP and evaluated domain with the tool fixture.

An illustrative case: an application displays From billing@example.com but uses an envelope identity under a provider's domain. A tool test of example.com can be irrelevant to the receiver's actual SPF decision. In another case, the application leaves through a different relay than the administrator expected. Fix the understanding of the route before extending authorisation.

As described in RFC 7208 §10.3, if a forwarder is involved, the final receiver can see the forwarder's connection rather than the original sending IP. Do not add every observed forwarder to the origin domain's SPF as a blanket repair. Assess the complete indirect-mail flow and other authentication results instead.

Compare DNS at the relevant times

Retrieve the current applicable record and dependencies. Preserve the receiver's event time and any contemporaneous DNS evidence. A test performed after a repair cannot prove what the receiver saw earlier. Similarly, a provider dependency can change without a local record edit.

Check authoritative publication, recursive answers and error conditions. Distinguish an old cached policy from a missing policy or a temporary DNS error. RFC 7208 section 2.6 defines different result categories; do not collapse fail, softfail, temperror and permerror into one diagnosis.

Replay the actual path

Use a standards-aware evaluator with the observed inputs. Inspect the matched mechanism, qualifiers, recursive dependencies and any limit or DNS error. Where historical DNS is unavailable, label the replay as a test of current state rather than a reconstruction of the earlier event.

Test both address families if the sender can use both. Compare multiple affected and unaffected samples to see whether the failure follows a route, region, IP family or time interval. This is a recommended diagnostic method, not a claim that any specific provider distributes traffic in a particular way.

Make the narrowest supported repair

Correct the confirmed issue: wrong envelope configuration, missing authorised scope, malformed policy, broken dependency or routing inconsistency. Preserve the original state and obtain the normal change approval. Do not broaden the policy merely to make an unexplained sample pass.

After the repair, send through the same application route and inspect a new trusted receiver result. Check DMARC separately, because a raw SPF pass may be unaligned and an aligned DKIM pass may support DMARC even when SPF fails. The alignment diagnosis guide covers that distinction. Close the incident with the difference between the old and new evidence, not just another green checker screenshot.

DNS background: RFC 1035 section 3.2.1 defines resource-record TTL; RFC 2308 §5 covers caching negative answers. RFC 8767 §4 updates TTL semantics to permit stale use when authoritative refresh fails. These describe DNS behaviour, not a universal completion time for a change.

Use a concrete decision record

Hypothetical comparison: a checker evaluates IP A against example.com today; yesterday’s receiver evaluated IP B against bounce.service.example.net. Those are different input sets. Record both IP/domain/time triples and the DNS evidence available for each. If historical DNS is missing, state that the original result cannot be fully replayed. Do not label either tool faulty from these observations alone. No replay or DNS test was executed here.

[ Takeaway ]

Separate syntax checking from a connection-specific SPF evaluation. Compare IP, SMTP identity, DNS state and observation time. Repair the confirmed cause without broadening unexplained permissions.

[ By role ]

What this means for you

Choose your role for practical next steps.

IT / Mail Admin

Reconstruct exact inputs.

Most useful comparisons start with the connection IP, envelope identity and DNS state.

Next steps

  1. Distinguish syntax validation from evaluation.
  2. Inspect forwarding and relay changes.
  3. Keep historical uncertainty explicit.

CISO / SecOps

Avoid overbroad incident fixes.

An unexplained failure should not become a reason to authorise unrelated infrastructure.

Next steps

  1. Review the evidence for new ranges.
  2. Trust only relevant receiver results.
  3. Check alignment and residual risks separately.

Founder / Non-technical

Focus on the affected route.

A generic checker result cannot substitute for evidence about the messages customers missed.

Next steps

  1. Identify the application and recipient.
  2. Preserve event times.
  3. Require a repeat test after repair.

[ FAQs ]

Frequently asked questions

Can a valid-record tool result be mistaken for SPF pass?

Yes. Confirm whether the tool evaluated a connection or only checked record structure.

Why is the visible From domain not enough?

The SPF identity comes from SMTP context. It may differ from the domain readers see in the message.

RFC 7208 §2.3 RFC 7208 §2.4

Should I trust every Authentication-Results header?

No. Use evidence from the relevant trusted receiver boundary and distinguish it from untrusted upstream assertions.

RFC 8601 §1.2 RFC 8601 §7.1

Can forwarding change the SPF result?

Yes. It can change the connecting address observed by the next receiver. Investigate the indirect route instead of indiscriminately authorising forwarders.

RFC 7208 §10.3

Does a current pass disprove yesterday’s failure?

No. Inputs, routing and DNS state may have changed. Keep event time and current-test time separate.

Are temperror and fail the same problem?

No. They indicate different evaluation outcomes and can require different corrective actions.

RFC 7208 §2.6

Can DMARC pass while SPF fails?

Yes, an aligned passing DKIM path can satisfy DMARC. Inspect both authentication and alignment rather than relying on one raw result.

RFC 9989 §5.3.5

What proves the repair worked?

A new test through the affected route with the intended identity, verified DNS and a trusted receiver result, plus checks of other relevant flows.

[ Sources ]

Sources

  1. RFC 7208

    Sections §2.3 · §2.4 · §2.6 · §4.1 · §4.6.2 · §4.6.4 · §10.3

  2. RFC 8601

    Sections §1.2 · §7.1

  3. RFC 9989

    Sections §4.4 · §5.3.5

  4. RFC 1035

    Sections §3.2.1

  5. RFC 2308

    Sections §5

  6. RFC 8767

    Sections §4

[ Glossary ]

Glossary

SPF
Authorization evaluation for a connecting IP and the relevant SMTP identity.

RFC 7208 §2.4

MAIL FROM identity
The SMTP envelope identity used by SPF, with the defined postmaster/HELO construction when the reverse path is null.

RFC 7208 §2.4

DMARC alignment
The required relationship between an authenticated identifier and the Author Domain.

RFC 9989 §4.4

Enterprise provenance

Why top financial institutions and governments retired their email security dashboards.

Traditional email authentication platforms sell you a dashboard and ask your engineers to do the labour. In high-stakes environments, manual oversight means delayed enforcement, configuration drift and unmonitored shadow domains.

EmailAuth is the agentic email provenance platform. Our agents enforce p=reject, keep third-party senders aligned and move your domains to full RFC 9989 compliance, the new DMARC standard,, with human-in-the-loop auditability.

Governments Large enterprises Tier-1 financial institutions

SaaS · Dedicated tenancy · Air-gapped on-prem · BYOK encryption

Knowledge Base