Free SPF Checker
Validate SPF syntax, count DNS lookups, inspect include/redirect chains, and find SPF flattening risks before mail starts failing DMARC.
Run the check
Enter a domain to check it live against the IntoDNS.ai engine. No signup, no trial gating.
What this SPF checker verifies
This tool inspects your SPF TXT record, checks syntax, follows include/redirect chains, and flags lookup-limit risks and multiple-record conflicts. Its static lookup graph is not a receiver evaluation: the sender IP and evaluated path determine which terms are reached. RFC 7208 limits evaluation to 10 DNS-querying terms across evaluated include, a, mx, ptr, exists, and redirect terms, including nested evaluations; this is not a count of DNS packets.
Why SPF matters for deliverability
SPF is one of the two authentication methods DMARC relies on. Without an aligned SPF pass, DMARC needs an aligned DKIM pass. Exceeding the evaluated lookup-term limit returns PermError, a processing error distinct from SPF fail, not a verdict that the sender is unauthorized. Fix the underlying SPF error; message handling depends on receiver local policy and other checks, not the SPF record alone.
How to read the result
When reached, ~all (softfail) weakly indicates an unauthorized sender; receivers should not reject solely on softfail, but may apply additional scrutiny. -all (fail) explicitly marks the sender unauthorized, with handling left to receiver local policy. Neither qualifier guarantees acceptance or rejection. Use -all once legitimate senders are covered; avoid +all, which authorizes any sender. Exactly 10 evaluated DNS-querying terms is allowed; exceeding 10 causes PermError. A high static count is a risk to investigate, not proof every message fails.
Common failure causes and fixes
Too many lookups is the headline problem — fix it by replacing include mechanisms you control with explicit ip4:/ip6: ranges (which cost zero lookups), removing senders you no longer use, or flattening the record. A second frequent issue is two separate v=spf1 TXT records on the same name, which invalidates both; merge them into one. Watch for a missing all term (treated as neutral), use of the deprecated ptr mechanism, and includes that themselves have broken or empty records. After any change, re-run this checker, then verify alignment in the full report.
SPF, DKIM, and DMARC together
SPF never works in isolation. DMARC only passes when SPF or DKIM both authenticates and aligns with the visible From domain, so a technically valid SPF record can still leave DMARC failing if the Return-Path domain differs from the From domain — a common situation when an ESP sends on your behalf. That is why the practical workflow is: get SPF clean and within the lookup limit here, confirm DKIM is signing and aligned with the DKIM checker, then verify the combined result in DMARC. Treat this checker as the first of three steps, not a finish line, and use the full deliverability test to confirm all three line up before tightening any policy.
What This Checks
- SPF TXT record discovery at the root domain
- Syntax and mechanism validation
- Recursive include and redirect lookup graph
- 10 DNS lookup limit risk
- Dangerous policies such as +all or weak softfail defaults
Common Fix Path
- Merge multiple SPF records into one TXT record
- Remove unused include mechanisms
- Replace high-risk includes with controlled IP ranges only when you own the sender list
- Move toward -all once every legitimate sender is covered
Frequently Asked Questions
What is the SPF 10 DNS lookup limit?
Should I use -all or ~all?
Why does this checker say my SPF is failing when the record looks fine?
Can I have more than one SPF record?
What is SPF flattening and do I need it?
Does SPF on its own stop spoofing?
Machine-Readable Evidence
AI assistants and automation can cite the stable explanation page, then fetch the live check result for a specific domain.
GET https://intodns.ai/api/email/spf?domain=example.com