Free SPF Record Checker
Look up and validate any domain's SPF record before a broken one bounces your mail. Type your domain, sign up free, and the product checks syntax, the 10-DNS-lookup limit and your default policy — using your 250 free credits, no credit card required.
Checks run inside the product with your free credits — every new account starts with 250. No credit card required.
SPF is one third of email authentication. Also run the DKIM checker and the DMARC checker.
What the SPF check covers
Your record goes through the same evaluation a receiving mail server runs — plus the question authentication alone can't answer: where your mail actually lands. Every stage is covered by your free credits.
- 1 Record lookup
Fetches the domain's TXT records
Included in your free credits - 2 Sanity
Exactly one v=spf1 record
Included in your free credits - 3 Syntax
Mechanisms, qualifiers, modifiers
Included in your free credits - 4 Lookup budget
Recursive count vs the 10-lookup cap
Included in your free credits - 5 Policy strength
What your “all” tells receivers
Included in your free credits - 6 Inbox placement
Where your mail actually lands
Included in your free credits
What is SPF and how do receivers use it?
SPF — Sender Policy Framework, defined in RFC 7208 — is a plain TXT
record published on your domain that answers one question: which
servers are allowed to send email as this domain? When your
message arrives at Gmail or Outlook, the receiving server takes the
IP address that connected to it, looks up the SPF record of the
envelope sender's domain, and checks whether that IP is authorized.
If it is, SPF passes; if not, the record's default policy (the
all mechanism) tells the receiver how suspicious to be.
Since 2024, Gmail and Yahoo have required authentication from bulk senders outright — mail without SPF or DKIM increasingly doesn't get a spam-folder consolation prize, it gets rejected. A broken SPF record is worse than none in one specific way: a record that receivers can't evaluate (a permerror) makes your domain look misconfigured on every message you send.
How to read an SPF record
An SPF record is a single line that starts with the version tag
v=spf1, followed by mechanisms read
left to right: ip4: and ip6: authorize
explicit addresses or ranges, a and mx
authorize the hosts behind the domain's A or MX records,
include: pulls in another domain's entire SPF record
(this is how you authorize Google Workspace, SendGrid, or any other
sending service), and exists: runs a conditional
test. ptr also exists, but RFC 7208 deprecates it —
it's slow, unreliable, and the SPF check flags it.
Each mechanism can carry a qualifier:
+ pass (the default), - fail,
~ softfail, ? neutral. In practice
qualifiers matter on exactly one mechanism — the all
that ends the record and catches every server not matched above it.
-all says reject unauthorized mail, ~all
says accept but flag it, ?all says nothing at all, and
+all — which real records in the wild actually contain —
authorizes the entire internet to send as you. Two
modifiers round out the syntax:
redirect= hands the whole evaluation to another domain's
record, and exp= supplies a custom failure message.
The 10-DNS-lookup limit
Here's the rule that quietly breaks more SPF records than any syntax
error: receivers will perform at most 10 DNS lookups
while evaluating a record. include:, a,
mx, ptr, exists: and
redirect= each consume one; ip4:,
ip6: and all are free. Cross the limit and
the result is permerror — your SPF stops working entirely, on every
message.
Includes are the killer because they nest. One
include: costs a lookup, and then every
lookup-consuming mechanism inside the included record counts against
your budget too. A single vendor include can quietly cost three or
four lookups. Sign up for a CRM, a helpdesk, a newsletter tool and a
transactional provider, and a record that looks like four harmless
includes can already be at nine or ten. The SPF check resolves the
whole tree recursively and shows you the true count, so you know how
much headroom you actually have before the next tool you adopt
pushes you over.
Common SPF failures and how to fix them
- Multiple SPF records. Two or more
v=spf1TXT records on one domain is an automatic permerror — receivers ignore all of them. It usually happens when a vendor's setup guide says "add this TXT record" and it gets added next to the existing one. Fix: merge every mechanism into a single record. -
+allor a missingall.+allauthorizes anyone on the internet to send as your domain; a record with noalland noredirect=never states a policy, so unknown senders default to neutral. Fix: end the record with~allor-all. - Too many lookups. Over 10 and SPF permerrors. Fix:
drop includes for tools you no longer use, replace
aandmxwith explicitip4:/ip6:ranges, and flatten heavyweight includes into raw IPs (with a process for keeping them current — vendor IPs change). - Stale vendor includes. Every include is a standing grant of permission to send as you. Audit the record when you churn off a provider — an include for a tool you abandoned two years ago is pure attack surface and wasted lookup budget.
SPF vs DKIM vs DMARC
The three standards answer different questions and only work as a set. SPF authorizes sending servers. DKIM puts a cryptographic signature on each message, proving it came from your domain and wasn't altered in transit. DMARC sits on top and supplies the two things the others lack: alignment — the domain that passed SPF or DKIM must match the From address your recipients actually see, which is what finally stops display-name spoofing — and a policy telling receivers what to do when both checks fail, plus reports so you can see who's sending as you.
A useful mental model: SPF and DKIM are two independent proofs of identity, and DMARC is the enforcement layer that requires at least one proof to align. That's also why forwarding doesn't doom you — forwarding tends to break SPF, but DKIM usually survives, and DMARC only needs one. Check all three: this page for SPF, the DKIM checker for signatures, and the DMARC checker for policy and alignment. And keep the honest caveat in mind: a perfect SPF record proves who you are, not that your mail deserves the inbox — that's a deliverability problem, and it starts with the quality of the list you send to.
SPF passing but mail still bouncing?
Authentication gets you judged fairly; a clean list gets you delivered. Verify every address with SMTP-level accuracy before you send, starting with 250 free credits — no card required.
SPF record checker — FAQ
What is an SPF record?
v=spf1 include:_spf.google.com -all. When your message arrives, the receiving server looks up that record and checks whether the connecting IP is on the list. It's one of the three authentication standards (with DKIM and DMARC) that mailbox providers now expect from every sender.How do I fix “permerror: too many DNS lookups”?
include:, a, mx, exists:, ptr and redirect= consumes one — including the ones nested inside each include. To fix it: remove includes for tools you no longer use, replace a/mx with explicit ip4:/ip6: ranges (which cost nothing), and consider “flattening” heavy includes into their raw IPs. The SPF check in the product counts your lookups recursively, so you can see exactly which record pushes you over.Is ~all or -all better?
-all (hard fail) tells receivers to reject or junk anything you haven't authorized; ~all (softfail) says “accept it, but mark it.” In practice both are fine, because modern receivers make the real decision through DMARC rather than SPF alone. Start with ~all while you're confirming every legitimate sender is in the record, then tighten to -all. What you should never use is ?all (says nothing) or +all (authorizes the entire internet).Do I need SPF if I already have DKIM?
Does SPF stop spoofing on its own?
Can I have two SPF records?
v=spf1 TXT records as a permanent error — meaning all of them are ignored and your SPF silently stops working. This usually happens when a new email tool's setup guide says “add this TXT record” and someone adds it alongside the existing one. The fix is to merge: keep one v=spf1 record and combine the mechanisms, e.g. v=spf1 include:_spf.google.com include:sendgrid.net -all.Is this free?
My SPF passes — why does my mail still land in spam?
Authenticated is step one. Delivered is the goal.
A valid SPF record means providers trust who you are — a verified list means they trust what you send. Clean yours with VerifyEmail, starting with 250 free credits.
Includes 250 free credits · No credit card required