SPF record checker
Make sure receivers can evaluate your SPF record and that it does not silently fail with a permanent error.
How it measures
- TXT records are fetched through a public resolver; exactly one record starting with v=spf1 must exist (RFC 7208).
- include: and redirect= targets are followed with the same 10-lookup budget receivers apply; a, mx, ptr and exists terms count one lookup each.
- Included domains without an SPF record are counted as void lookups (limit 2).
Limits
- Address lookups of MX hosts, which RFC 7208 limits separately, are not counted.
- Macro expansion (%{i} and friends) is not evaluated; terms containing macros are counted but not resolved.
- Whether a specific sending address passes is not evaluated; this is a record review, not a message test.
Troubleshooting
- Too many DNS lookups
- Flatten rarely changing includes into ip4/ip6 terms, remove unused vendors, or use a managed SPF flattening service.
- Multiple records
- Merge them into one v=spf1 record; two records are a permanent error for every receiver.