SPF (Sender Policy Framework) lets you declare which mail servers are authorized to send email for your domain. Receiving servers check the sending IP against your SPF record — if it doesn't match, the message may be rejected or marked as spam. A well-configured SPF record protects your domain from spoofing and improves deliverability.
Start by identifying all services that send mail as your domain: your own mail server, marketing platforms, transactional email services, CRM systems, and helpdesk tools. Missing a legitimate sender means their mail will fail SPF checks. Use DMARC aggregate reports (p=none) to discover senders you may have missed.
Quick Add Common Providers
Click to add. Each include counts toward your 10-lookup budget. Verified May 2025.
Zoho has regional include values: zoho.com (US), zoho.eu (EU), zoho.in (India). Use the one matching your Zoho data center region.
Not listed? Some providers (e.g., HubSpot) use CNAME-based SPF delegation instead of include: mechanisms. Check your provider's email authentication documentation for their specific setup instructions.
How to verify provider include values
dig TXT _spf.google.com (replace with provider's domain). (3) Look for the include mechanism in the response. These values were verified as of May 2025. Re-verify if your setup is older than 6 months.🔍 Check my current SPF record →
When to use include: vs ip4:
IP address and CIDR notation
What mx and a mechanisms do
🚫 DANGER: +all allows ANY server on the internet to send email as your domain.
This completely defeats the purpose of SPF. Any spammer, phisher, or attacker can send mail claiming to be from your domain, and it will pass SPF checks. There is virtually no legitimate use case for +all. If you are unsure, use -all (recommended) or ~all (during initial deployment).
Understanding the all qualifier
Generated Record
Add this TXT record to your DNS at @ (root domain):@ (root domain):
v=spf1 -all
Top-level count only. Nested includes (e.g., Google ≈4, Microsoft ≈3-4) add to the real total. Use the SPF Flatten tool to check your actual count.SPF Flatten tool to check your actual count.
Why does SPF have a 10-lookup limit?
SPF record length limits
Deployment Checklist
- Copy the generated TXT record above.
- Log in to your DNS hosting provider's control panel.
- Add a TXT record at
@(root domain) with the generated value. Set TTL to 3600 (1 hour) or lower during initial testing.@(root domain) with the generated value. Set TTL to 3600 (1 hour) or lower during initial testing. - Wait 5-10 minutes for DNS propagation (or up to the TTL of any existing SPF record being replaced).
- Verify publication:
dig TXT yourdomain.com— confirm the record appears with correct content.dig TXT yourdomain.com— confirm the record appears with correct content. - Test: Send a test email and check the
Authentication-Resultsheader forspf=pass.Authentication-Resultsheader forspf=pass. - Monitor: Deploy DMARC with
p=noneand anruaaddress to monitor SPF results across all senders.p=noneand anruaaddress to monitor SPF results across all senders. - Plan to upgrade from
~allto-allafter confirming all legitimate senders pass SPF in your DMARC reports (typically 2-4 weeks).~allto-allafter confirming all legitimate senders pass SPF in your DMARC reports (typically 2-4 weeks).