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).
Return-path CNAME (not TXT); your host name comes from SMTP2GO
Type: CNAME · Host: em12345
return.smtp2go.net
If you need the return path's SPF to end in -all
Type: CNAME · Host: em12345
return-alt.smtp2go.net
Your main domain on Microsoft 365 stays as it is
Type: TXT · Host: @ · 1 of 10 DNS lookups
v=spf1 include:spf.protection.outlook.com -all
How SPF applies to SMTP2GO mail
SMTP2GO sends with a bounce (MAIL FROM) address on a subdomain set up for it, and receivers check SPF on that subdomain. Your main domain's SPF record doesn't need to change for SMTP2GO.
- SMTP2GO recommends a TTL of 14400 seconds (4 hours) for these records.
- Since 11 April 2025, SMTP2GO requires every email to come from a verified sender: a verified domain or a single verified address.
- If company policy rules out CNAME records, SMTP2GO says it can enable TXT and MX records instead on request.
How to add it
- In the SMTP2GO dashboard, go to Sending, Verified Senders, Sender domains, click Add sender domain and enter the domain you send from.
- Add the three CNAME records shown: the return path (SPF), DKIM and the link-tracking domain. SMTP2GO can add them for you through Entri, or you add them by hand.
- If your DNS host is Cloudflare, set each record to DNS only and turn off CNAME flattening, as SMTP2GO's Cloudflare guide says.
- Click Verify. The domain is set up once its status shows Verified. Leave your main domain's SPF record unchanged.
DKIM and DMARC alignment
DKIM is covered by the second CNAME, which points to dkim.smtp2go.net; see our SMTP2GO DKIM page. Without a verified domain, SMTP2GO signs with its own domain and Gmail can show "via smtpcorp.com". DMARC is a separate TXT record you add yourself.
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). See how to fix too many SPF lookups. - Choosing
~allor-allwithout a plan.-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. - Adding an SMTP2GO include to your root SPF record because an old guide said so. SMTP2GO says you don't need to update your SPF record.
- Proxying the CNAMEs through Cloudflare or leaving CNAME flattening on, which stops them from verifying.
- Verifying only a single sender address when you could verify the domain. Single sender emails don't use your domain for DKIM or SPF.
Check your SPF record
See your live record, every nested include and the real lookup count. Free, reads public DNS only.
Building a record for your other senders? Use the SPF Record Generator.
Frequently asked questions
Do I need to add SMTP2GO to my SPF record?
No. SMTP2GO says SPF is handled automatically once your sender domain is verified: the first of its three CNAME records is the return-path subdomain, and receivers check SPF there. Your main domain's SPF record stays as it is.
Can SMTP2GO's return path use -all instead of ~all?
Yes. SMTP2GO says to point the return-path CNAME at return-alt.smtp2go.net instead of return.smtp2go.net if you need a hard fail (-all). When we checked on 22 October 2026, those two names published ~all and -all records respectively.
What are SMTP2GO's three CNAME records for?
The first is the return path, used for bounces and SPF; the second is DKIM, pointing to dkim.smtp2go.net; the third is the link-tracking domain, pointing to track.smtp2go.net, which gets a certificate automatically so tracked links use https.
Sources
- SMTP2GO Support: SPF, DKIM and DMARC overview
- SMTP2GO Support: Verified Senders
- SMTP2GO Support: DNS setup for Cloudflare
- RFC 7208: Sender Policy Framework (SPF)
Values checked against SMTP2GO's documentation on October 22, 2026. Lookup counts measured with our SPF Checker on November 3, 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
- Fastmailinclude:spf.messagingengine.com
- Proton Mailinclude:_spf.protonmail.ch
- iCloud Mailinclude:icloud.com
- Rackspace Emailinclude:emailsrvr.com
- Hostingerinclude:_spf.mail.hostinger.com
- Private Emailinclude:spf.privateemail.com
- IONOSinclude:_spf-us.ionos.com
- Amazon SESinclude:amazonses.com
- SendGridinclude:sendgrid.net
- Mailguninclude:mailgun.org
- PostmarkNone needed
- Mailjetinclude:spf.mailjet.com
- MandrillNone needed
- SparkPostNone needed (bounce-domain CNAME)
- Elastic Emailinclude:_spf.elasticemail.com
- Resendinclude:amazonses.com
- MailerSendinclude:_spf.mailersend.net
- MailchimpNone needed
- BrevoNone for standard sending; spf.brevo.com with a dedicated IP
- HubSpotAccount-specific (copy from HubSpot)
- KlaviyoNone needed
- ActiveCampaignNone needed (Mailserver Domain CNAME)
- SquarespaceNone needed
- ShopifyNone needed (CNAME records)
- Dynamics 365 Customer InsightsNone needed (optional: your envelope-from domain)
- MailerLiteinclude:_spf.mlsend.com
- Campaign Monitorinclude:_spf.createsend.com
- KitNone needed (ckespa CNAME)
- Marketoinclude:mktomail.com
- Account Engagement (Pardot)None needed (SPF passes automatically)
- Customer.ioCopy from Customer.io (cio##### subdomain)
- Constant ContactNone needed
- Zoho Campaignsinclude:zcsend.net
- Salesforceinclude:_spf.salesforce.com
- Zendeskinclude:mail.zendesk.com
- Freshdeskinclude:email.freshdesk.com
- IntercomNone needed
- Help ScoutNone needed (old value: helpscoutemail.com)
- Odooinclude:_spf.odoo.com
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