Skip to main content
SPF vs DKIM in Headers — See the difference between sender IP and signature authentication. Compare Results →

What is the difference between SPF and DKIM results in headers?

Both appear in Authentication-Results, but they verify different things:

SPF results verify whether the sending IP address is authorized to send for the envelope sender domain (Return-Path).

  • spf=pass: IP is listed in the domain's SPF record
  • spf=fail: IP is explicitly not allowed
  • spf=softfail: IP isn't allowed but domain isn't certain (using ~all)
  • spf=neutral: Domain expresses no opinion (?all)
  • spf=none: No SPF record exists
  • The smtp.mailfrom field shows which domain was checked.

DKIM results verify the cryptographic signature proving the message wasn't altered and came from a server with the domain's private key.

  • dkim=pass: Signature validates
  • dkim=fail: Signature invalid (message altered or key mismatch)
  • dkim=none: No signature present
  • The header.d or header.i shows the signing domain; header.s shows the selector.

You can pass one and fail the other. SPF failing while DKIM passes often indicates forwarding (SPF checked new IP; DKIM signature preserved). DMARC requires at least one to pass and align.

Need personalized help?

Understand why you need both SPF and DKIM. Open an AI assistant with your question pre-loaded — just add your details and send.