Free SPF Checker - Validate Your SPF Record Instantly
Check your SPF record syntax and DNS lookup count. See if you're under the 10-lookup limit, detect dangerous +all settings, and get instant fix recommendations.
Takes ~10 seconds
What This Tool Checks
SPF Record Presence
Verifies v=spf1 TXT record exists
Syntax Validation
Checks for valid SPF syntax and mechanisms
DNS Lookup Count
Counts lookups against the 10-limit
All Qualifier
Detects dangerous +all or missing -all
How to Fix Common Issues
Too Many DNS Lookups (>10)
Replace include mechanisms with IP addresses or use SPF flattening:
v=spf1 ip4:192.0.2.0/24 ip4:198.51.100.0/24 -all
Dangerous +all Qualifier
Replace +all with -all (hard fail) or ~all (soft fail):
v=spf1 include:_spf.google.com -all
Using ~all Instead of -all
Upgrade to hard fail for better protection:
v=spf1 include:_spf.google.com -all
How It Works
Enter Your Domain
Type your domain name without http:// or www
We Query DNS
Our tool fetches and parses your SPF TXT record
Get Instant Results
See lookup count, syntax issues, and recommendations
Frequently Asked Questions
What is the SPF 10 DNS lookup limit?
SPF records are limited to 10 DNS lookups to prevent infinite loops and reduce server load. Each include, a, mx, ptr, exists, and redirect mechanism counts toward this limit. Exceeding it causes SPF to fail with a permerror.
What does +all mean in SPF?
+all is a dangerous SPF qualifier that allows ANY server to send email as your domain. This completely defeats the purpose of SPF. Always use -all (hard fail) or ~all (soft fail) instead.
What's the difference between ~all and -all?
~all (soft fail) marks unauthorized emails as suspicious but still delivers them. -all (hard fail) tells receivers to reject unauthorized emails. Use ~all during testing, then upgrade to -all for production.
How do I fix too many DNS lookups?
To reduce DNS lookups: 1) Replace include mechanisms with ip4/ip6 addresses where possible, 2) Use SPF flattening services, 3) Remove unused includes, 4) Consolidate multiple includes from the same provider.
Can I have multiple SPF records?
No, you should only have ONE SPF record per domain. Multiple SPF records cause a permerror and SPF will fail. Combine all your authorized senders into a single SPF record.
Understanding SPF Records: The Complete Guide
SPF (Sender Policy Framework) is an email authentication protocol that allows domain owners to specify which mail servers are authorized to send email on behalf of their domain. Published as a DNS TXT record, SPF helps receiving mail servers verify that incoming email from your domain comes from an authorized source.
How SPF Works
When an email arrives, the receiving server checks the sender's domain for an SPF record. It then compares the sending server's IP address against the list of authorized servers in the SPF record. If there's a match, SPF passes. If not, the SPF result depends on your policy qualifier.
An SPF record starts with v=spf1 and contains mechanisms that define authorized senders:
- ip4/ip6 - Authorize specific IP addresses or ranges
- include - Reference another domain's SPF record (e.g.,
include:_spf.google.com) - a - Authorize the domain's A record IP
- mx - Authorize the domain's mail servers
- all - The catch-all mechanism that defines what happens to non-matching senders
The Critical 10 DNS Lookup Limit
SPF has a strict limit of 10 DNS lookups to prevent infinite loops and reduce server load. Each include, a, mx, ptr, exists, and redirect mechanism counts toward this limit. Exceeding 10 lookups causes SPF to fail with a "permerror" result.
This limit is the most common SPF problem for organizations using multiple email services. Each service you add (Google Workspace, Microsoft 365, Mailchimp, Salesforce, etc.) typically requires an include statement, quickly consuming your lookup budget.
SPF Qualifiers: -all vs ~all vs +all
The qualifier before all determines how strictly your SPF policy is enforced:
- -all (Hard Fail) - Recommended. Tells receivers to reject emails from unauthorized servers.
- ~all (Soft Fail) - Marks unauthorized emails as suspicious but still delivers them. Use during testing.
- ?all (Neutral) - No policy. SPF provides no guidance on unauthorized senders.
- +all (Pass) - DANGEROUS. Authorizes ANY server to send as your domain. Never use this.
How to Reduce DNS Lookups
If you're hitting the 10-lookup limit, here are strategies to reduce your count:
- SPF Flattening - Replace
includemechanisms with the actual IP addresses they resolve to. This removes the DNS lookup but requires maintenance when IPs change. - Remove unused includes - Audit your SPF record and remove services you no longer use.
- Use ip4/ip6 directly - If a service has stable IPs, use them directly instead of an include.
- Consolidate services - Some providers share SPF records. Check if you can reduce redundant includes.
SPF Best Practices
- One SPF record per domain - Multiple SPF records cause a permerror. Combine all senders into one record.
- Keep it under 255 characters - DNS TXT records have size limits. Use multiple strings if needed.
- Avoid the ptr mechanism - It's slow, unreliable, and deprecated. Use ip4/ip6 instead.
- Test before deploying - Use SPF validators to check syntax and lookup count before publishing.
- Monitor regularly - Email services change their IPs. Flattened records need periodic updates.
SPF Alone Isn't Enough
SPF only authenticates the envelope sender (Return-Path), not the visible From address. This means SPF alone can't prevent display-name spoofing. For complete protection, combine SPF with DKIM (cryptographic signing) and DMARC (policy enforcement). Together, these three protocols form the foundation of modern email authentication.
Monitor Your SPF Record Daily
Get alerts when your SPF record changes or exceeds the lookup limit.
Start Free Monitoring