SPF record checker
What the SPF record is, why it protects your domain from spoofing, what a correct and an incorrect one look like (with the ~all vs -all example) and how to fix it step by step. With a free, instant check of any domain.
FREE TOOL · NO SIGN-UP
Check your domain’s SPF now
Enter your domain and our email-authentication analyser reviews your SPF record together with DKIM, DMARC and MX in seconds: whether it exists, whether it is valid and whether its policy protects against spoofing. The analysis is instant and we don’t store your domain.
What is the SPF record?
v=spf1 and ends with an all mechanism that defines what to do with senders that are not listed.Why it matters: it stops domain spoofing
What a correct and an incorrect SPF look like
v=spf1 include:_spf.google.com include:sendgrid.net -allThe key difference is the ending.
-all (hardfail) tells receivers to reject any sender not listed: it is the recommended policy once you have inventoried all your senders. ~all (softfail) asks them to accept it but mark it as suspicious: useful as an interim step while you confirm you are not forgetting a legitimate service. Avoid +all, which authorises anyone and completely disables the protection, and avoid staying on ~all forever. Having no SPF record, or having two SPF records on the same domain — which causes a PermError — are also incorrect configurations.Common mistakes that break your SPF
+all and publishing two records, the most common failure is exceeding the limit of 10 DNS lookups: each include, a, mx or redirect counts, and once you pass ten the SPF returns PermError and stops validating. Consolidate any unnecessary include. Remember too that SPF alone does not protect the visible address (the "From:" the recipient sees): it validates the envelope domain (Return-Path). That is why SPF must always be paired with DMARC, which aligns and protects the visible sender.How to set up or fix your SPF step by step
2. Create a single TXT record on the root domain that includes all of them, for example
v=spf1 include:_spf.google.com include:sendgrid.net ~all.3. Publish it in your DNS and wait for propagation (minutes to a few hours).
4. Verify that it resolves, that it does not exceed 10 lookups and that there are no duplicate records.
5. Once you are sure no sender is missing, harden the policy from
~all to -all.You can check every step with our free analyser.
Frequently asked questions about SPF
How do I check my domain SPF record?
Enter your domain in our free analyser: we query your public DNS and instantly tell you whether an SPF record exists, whether it is valid and whether its policy protects against spoofing, along with DKIM, DMARC and MX.
What is the difference between ~all and -all in SPF?
-all (hardfail) asks servers to reject any sender not included in your SPF; it is the safest policy once you have listed all your services. ~all (softfail) asks them to accept it but mark it as suspicious, which is useful as an interim step. You should avoid +all, which authorises anyone.
Is SPF enough to protect me from spoofing?
No. SPF validates the technical envelope domain, but not the visible address the recipient sees. For real protection you must combine it with DKIM and, above all, with DMARC, which aligns and protects the visible sender of your emails.
Why does my SPF return PermError?
The most common cause is exceeding the limit of 10 DNS lookups (each include, a, mx or redirect counts) or publishing two SPF records on the same domain. Consolidate unnecessary includes and keep a single TXT record starting with v=spf1.
Sources and references
- RFC 7208 — Sender Policy Framework (SPF)
- Google Workspace — SPF help
- Microsoft — Set up SPF in Microsoft 365
Updated: July 2026 · Informational content; not professional advice.
Keep learning
Monitor your email authentication continuously
Sign up free at OCIRIA Security and get alerts when your SPF, DKIM or DMARC changes or stops protecting your domain.