SPF record generator
Build a v=spf1 TXT record from the providers you actually send through.
This tool only reads public DNS or runs in your browser. It does not spend verification credits.
v=spf1 include:_spf.google.com ~all
Publish as a single TXT record on the apex. Never create two SPF records.
What this generator is for
SPF is a TXT record that lists who may send mail as your domain. The format is easy to get slightly wrong and painful to debug later: two records instead of one, too many lookups (the "10 DNS lookup" cap), an include: for a tool you turned off two years ago.
Tick the providers you actually send through. We draft a single v=spf1 … ~all record. Copy it into DNS. Then confirm with the deliverability checker.
This runs in your browser. No credits. Uncapped.
The rules that actually bite
- One SPF record per domain. Merge includes into a single TXT. A second
v=spf1is a bug, not a backup. - Include only what you send through. Google Workspace, Microsoft 365, Mailgun, SendGrid, Amazon SES, Zoho, Fastmail — each
include:costs lookups. Leftover ESPs from old marketing tools are how you exceed the lookup limit and fail SPF for *everyone*. - `~` vs `-`.
~all(soft fail) is the default here because it is the safe publish.-all(hard fail) is for domains that are sure no legitimate mail comes from anywhere else. If you still have a random WordPress plugin sending "contact form" mail,-allwill punish you.
How to publish
- Generate the record on this page.
- Open DNS wherever the NS records point — often Cloudflare or GoDaddy, not the Google Admin console.
- Add a TXT record on
@/ apex with the generated value. - Wait for TTL. Check the live lookup.
- If you use Google Workspace, their Admin > Account > Domains view can also confirm.
Step-by-step per host lives under /dns. Example: SPF for Google Workspace.
What SPF does not do
SPF does not encrypt mail. It does not verify recipients. It does not replace DKIM. A domain can pass SPF and still fail DMARC if the visible From: domain does not align. Read the three-record explainer if that sentence was opaque.
Common mistakes
- Publishing SPF on
wwwinstead of the apex. - Creating a new SPF record next to the old one "just to add SendGrid."
- Copying someone else's record from a blog post that
include:s a host you do not use. - Forgetting that Google *and* a sequencer both need includes if both send as
@yourdomain.com.
After SPF
Add DKIM at the provider, publish DMARC at p=none, then warm the domain if it is new.
Related
- SPF, DKIM and DMARC checker
Look up the three DNS records that decide whether Gmail and Outlook trust mail from a domain.
- DMARC record generator
Build a _dmarc TXT record. Start at p=none, then tighten once the reports look clean.
- SPF record for Google Workspace
How to add a SPF record when DNS or mail is at Google Workspace. Real steps, then a live lookup.
- Free work email finder
Find a work email from a name and company domain. Checked against the mail server, not guessed from a database.