What it is
A single TXT record on your domain listing which systems are allowed to send mail on your behalf. Receiving servers check it and treat unlisted senders with suspicion.
Publish one
- List every system that sends mail as you. Start with your mail provider, then add invoicing, booking, CRM, help desk and marketing tools.
- Each provider publishes an SPF include value. Google Workspace uses
include:_spf.google.com, Microsoft 365 usesinclude:spf.protection.outlook.com, and so on. - Combine them into one record:
v=spf1 include:_spf.google.com include:example.com ~all - Publish it as a TXT record on the domain itself, not on a subdomain.
- Only ever have one SPF record. Two records mean neither works, and this is the most common mistake.
Choosing the ending
~all is a soft fail: unlisted senders are marked suspicious but usually still delivered. -all is a hard fail. Start with ~all until you are confident the list is complete, then tighten.
The limit to keep in mind
SPF permits ten DNS lookups, and each include counts, along with any includes inside them. Five or six providers is enough to cross it at some combinations. See the lookup guide.
For the whole subject in five chapters: the SPF field guide.