SPF.Guru Sign in

SPF checker

Evaluate a domain's SPF record the way a receiving mail server does. Every mechanism, DNS lookup and macro expansion is shown, so you can see not just the verdict but where it came from.

A bare domain works too

IPv4 or IPv6

Defaults to the sender domain

Evaluated instead of the published record, so you can test one before publishing it. Includes inside it still resolve live.

softfail

The sending IP is not authorised, but the domain asks for a soft landing.

DNS terms used
1 of 10
Void lookups
0 of 2
DNS queries
2
Elapsed
22 ms

How it was evaluated

  1. record for _spf.protonmail.ch v=spf1 ip4:185.70.40.0/24 ip4:185.70.41.0/24 ip4:185.70.43.0/24 ip4:79.135.106.0/24 ip4:79.135.107.0/24 ip4:109.224.244.0/24 include:_spf2.protonmail.ch ~all
  2. ip4:185.70.40.0/24 no match
  3. ip4:185.70.41.0/24 no match
  4. ip4:185.70.43.0/24 no match
  5. ip4:79.135.106.0/24 no match
  6. ip4:79.135.107.0/24 no match
  7. ip4:109.224.244.0/24 no match
  8. include:_spf2.protonmail.ch no match
    • _spf2.protonmail.ch returned softfail
  9. record for _spf2.protonmail.ch v=spf1 ip4:85.9.206.169 ip4:85.9.210.45 ip4:37.187.220.204 ip4:51.83.17.38 ip4:57.129.93.249 ~all
  10. ip4:85.9.206.169 no match
  11. ip4:85.9.210.45 no match
  12. ip4:37.187.220.204 no match
  13. ip4:51.83.17.38 no match
  14. ip4:57.129.93.249 no match
  15. ~all softfail
  16. ~all softfail

DNS queries

NameTypeResultSourceTime
_spf.protonmail.ch TXT NOERROR dns 9.1 ms
_spf2.protonmail.ch TXT NOERROR dns 12.4 ms

Answers marked shared cache came from a recent check by someone else and cost no network round trip; cache means the same name was needed twice within this one evaluation. Entries expire after a minute, so if you have just changed a record, allow that long before the change shows here.