The exact SPF record
Copy the example that matches your setup. Each one is a single TXT record; the host is shown as your DNS provider usually expects it (@ means the domain itself).
Fastmail only (as Fastmail documents it)
Type: TXT · Host: @ · 1 of 10 DNS lookups
v=spf1 include:spf.messagingengine.com ?all
Fastmail only, with a soft fail ending
Type: TXT · Host: @ · 1 of 10 DNS lookups
v=spf1 include:spf.messagingengine.com ~all
Fastmail and Zendesk
Type: TXT · Host: @ · 2 of 10 DNS lookups
v=spf1 include:spf.messagingengine.com include:mail.zendesk.com ~all
How SPF applies to Fastmail mail
Receivers check SPF against the domain in the envelope sender (the MAIL FROM or bounce address). Fastmail sends with your own domain there, so its include belongs in the SPF record on the domain you send from.
- The SPF include is not your MX host. Fastmail's inbound MX records are
in1-smtp.messagingengine.com(priority 10) andin2-smtp.messagingengine.com(priority 20); they don't belong in SPF. - Fastmail's DNS guide also lists a starter DMARC record,
v=DMARC1; p=none;, to publish once SPF and DKIM are in place. - RFC 7208 defines
?all(neutral) as the domain owner explicitly not saying whether other servers are allowed. Receivers treat it like having no policy for those servers.
How to add it
- At your DNS host, look for an existing TXT record on the root of your domain that starts with
v=spf1. - Add
include:spf.messagingengine.comto it, or create a TXT record with one of the values above. - Add Fastmail's three DKIM CNAME records (below) at the same time.
- Save, then check the live record with the SPF Checker below.
DKIM and DMARC alignment
Fastmail signs with DKIM through three CNAME records: fm1._domainkey pointing to fm1.yourdomain.com.dkim.fmhosted.com, and the same for fm2 and fm3. Publish all three. Domains set up before 2018 may also have a deprecated mesmtp._domainkey CNAME. With DKIM in place, add a DMARC record.
DMARC passes when SPF or DKIM passes and the domain it checked matches your From domain. Our guide to SPF, DKIM and DMARC explains how the three fit together.
Common mistakes
- Two SPF records. A domain may publish only one record that starts with
v=spf1. With two, receivers return a permanent error and SPF fails for all your mail (RFC 7208 section 3.2). Merge every sender into one record. - More than 10 DNS lookups. Each
include,a,mx,existsandredirectcosts a lookup, nested ones included; over 10 is a PermError (section 4.6.4). Fastmail's include costs 1 on its own. See how to fix too many SPF lookups. - Choosing
~allor-allwithout a plan. Fastmail's documentation uses?all.-allasks receivers to reject unlisted servers;~allasks them to accept but mark the mail. Once DMARC is enforced, receivers act on DMARC instead. Read SPF soft fail vs hard fail before you choose. - Publishing only
fm1._domainkey. Fastmail says you need all three DKIM CNAME records.
Check your SPF record
See your live record, every nested include and the real lookup count. Free, reads public DNS only.
Building a new record? Open the SPF Record Generator with Fastmail filled in.
Frequently asked questions
What is the SPF record for Fastmail?
Fastmail's manual DNS guide gives v=spf1 include:spf.messagingengine.com ?all as a TXT record on the root of your domain. If other services send as your domain, add their includes to the same record.
Why does Fastmail's record end in ?all?
?all is neutral: it neither allows nor rejects servers that aren't listed. It is the safest choice when you aren't sure every sender is listed, but it gives receivers no signal against spoofing. Once you've listed all senders, ~all or -all is stronger. See our soft fail vs hard fail guide.
Which DKIM records does Fastmail need?
Three CNAME records: fm1._domainkey, fm2._domainkey and fm3._domainkey, pointing to fm1.yourdomain.com.dkim.fmhosted.com and so on. Fastmail asks you to publish all three.
Sources
- Fastmail Help: Manual DNS configuration
- RFC 7208 section 2.6: Results of evaluation
- RFC 7208: Sender Policy Framework (SPF)
Values checked against Fastmail's documentation on October 9, 2026. Lookup counts measured with our SPF Checker on October 9, 2026; providers change their records, so check yours before relying on a number.
SPF records for other providers
- Microsoft 365include:spf.protection.outlook.com
- Google Workspaceinclude:_spf.google.com
- Zoho Mailinclude:zoho.com
- GoDaddyinclude:secureserver.net
- Proton Mailinclude:_spf.protonmail.ch
- Amazon SESinclude:amazonses.com
- SendGridinclude:sendgrid.net
- Mailguninclude:mailgun.org
- PostmarkNone needed
- MailchimpNone needed
- BrevoNone for standard sending; spf.brevo.com with a dedicated IP
- HubSpotAccount-specific (copy from HubSpot)
- KlaviyoNone needed
- Salesforceinclude:_spf.salesforce.com
- Zendeskinclude:mail.zendesk.com
- Freshdeskinclude:email.freshdesk.com
- IntercomNone needed
Related guides
SPF record syntax and examples
SPF record syntax explained: mechanisms, qualifiers and modifiers, with copy-ready examples for Microsoft 365, Google Workspace, subdomains and parked domains.
9 min read SPF, DKIM & DMARCHow to fix SPF PermError: too many DNS lookups
Why SPF breaks at 10 DNS lookups, how to count them, and step-by-step fixes for Microsoft 365 and Google Workspace domains with many senders.
8 min read SPF, DKIM & DMARCSPF softfail vs hardfail: should you use ~all or -all?
What ~all, -all and ?all mean in SPF, what receivers really do with each, how DMARC changes the choice, and which one to use for sending and parked domains.
8 min readLast updated