Publish an SPF record
Tell mailbox providers which servers are allowed to send email as your domain.
15 min
why this matters
Without SPF, receivers have no way to tell your mail from a spoof, so far more of it is filtered — and Gmail and Yahoo now require authentication from bulk senders.
Step by step
- 1
List every service that sends as your domain
Your mailbox provider, your marketing platform, your helpdesk, your invoicing tool, your CRM. Missing one means its mail starts failing, so write the list down first.
- 2
Collect each provider's include value
Every provider documents an SPF include. Common ones: Google Workspace uses _spf.google.com, Microsoft 365 uses spf.protection.outlook.com, SendGrid uses sendgrid.net, Mailchimp uses servers.mcsv.net.
- 3
Publish one TXT record on the root domain
Combine every sender into a single record. Only one SPF record may exist per domain.
Type: TXT Name: @ Value: v=spf1 include:_spf.google.com include:sendgrid.net -all - 4
Choose your enforcement
End with -all to have unauthorised mail rejected, or ~all while you are still confirming your sender list. Never use +all — it permits anyone to send as you.
how to check it worked
- dig +short TXT example.com shows exactly one v=spf1 record
- A test message to Gmail shows 'spf=pass' in Show original
related guides
Merge multiple SPF records into one
Two SPF records is a permanent failure — combine them.
Set your SPF enforcement correctly
Replace +all or a missing all mechanism with -all.
Get SPF back under the 10-lookup limit
Flatten or consolidate includes so SPF stops returning permerror.
Publish a DMARC record
Add a monitoring DMARC policy and start collecting reports.