SPF record checker

Validate your SPF record against RFC 7208, see every include with its lookup cost, and test whether a server may send for your domain.

Test a sending IP (optional)

5 free checks per day · then from $0.04 per check — pricing

What the SPF Checker checks

  • Exactly one v=spf1 record
  • 10 DNS-lookup limit across all includes
  • 2 void-lookup limit
  • Syntax of every mechanism and modifier
  • Policy: +all, ?all, ~all, -all
  • Deprecated ptr, macros, loops, duplicates
  • Optional: does a given IP pass?

How it works

  1. 1

    Enter your domain (and optionally a sending IP)

  2. 2

    See the record, the include tree and lookup count

  3. 3

    Fix errors — the result tells you how

Frequently asked questions

What is the SPF 10-lookup limit?

RFC 7208 allows at most 10 mechanisms that need DNS lookups (include, a, mx, ptr, exists, redirect) while evaluating SPF — including everything inside your includes. Above 10, receivers return "permerror" and SPF fails for every message.

~all or -all?

Both are fine. With an enforced DMARC policy, ~all (soft fail) is the common recommendation because DMARC then decides. -all is stricter and rejects unlisted servers at SPF level already.

Can I have two SPF records?

No. With more than one v=spf1 TXT record, SPF always fails with permerror. Merge all mechanisms into a single record.

What is a void lookup?

A DNS lookup that returns no records (for example an include to a domain without SPF). More than two void lookups also cause a permerror.