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).
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
Your main domain on Google Workspace stays as it is
Type: TXT · Host: @ · 1 of 10 DNS lookups
v=spf1 include:_spf.google.com ~all
How SPF applies to ActiveCampaign mail
ActiveCampaign 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 ActiveCampaign.
- ActiveCampaign says records usually propagate in 5 to 10 minutes and can take up to 24 hours, longer for a newly bought domain.
- For accounts under 5,000 contacts, ActiveCampaign is gradually replacing the From address on unauthenticated domains with a generic one on its shared domain.
- If you do add something to your SPF record for other services, keep a single record: ActiveCampaign notes you can only have one.
How to add it
- In ActiveCampaign, click Settings (the gear icon), then Advanced, and find the Sending Domain section.
- Choose Configure Domain to let ActiveCampaign add the records through your DNS provider's login, or Set up manually to verify the domain by email and copy the records yourself.
- For manual setup, add each record in the table as the type shown (CNAME or TXT), including the Mailserver Domain CNAME and the DKIM CNAMEs. ActiveCampaign suggests a TTL of 300 seconds if your DNS host has no default.
- Leave your root SPF record alone, then use Recheck Authentication until the domain shows Authenticated.
DKIM and DMARC alignment
The same sending-domain setup publishes ActiveCampaign's DKIM records, two CNAMEs under the selectors acdkim1 and acdkim2 (see our ActiveCampaign DKIM page), and a basic DMARC record. ActiveCampaign says a quarantine or reject DMARC policy needs DKIM set up first, or its mail fails DMARC.
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 a guessed ActiveCampaign include to your SPF record. The Mailserver Domain CNAME already covers SPF on the return path.
- Mixing up the Mailserver Domain with the custom link-tracking domain. ActiveCampaign calls them different features with two different CNAMEs.
- Moving DMARC to
p=quarantinebefore the DKIM CNAMEs are authenticated.
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 an SPF include for ActiveCampaign?
No. ActiveCampaign says that once the Mailserver Domain from its sending-domain setup is in place, SPF is fully covered and you don't need to create or modify an SPF record. Receivers check SPF on that return-path subdomain.
What is ActiveCampaign's Mailserver Domain?
A CNAME on a subdomain of yours, such as acmail.bobscompany.com in ActiveCampaign's example, that points to ActiveCampaign. It becomes the Return-Path (bounce) domain, so SPF passes and aligns with your From domain under DMARC's relaxed alignment.
Why does ActiveCampaign mail show a different mailed-by domain?
Without a Mailserver Domain, ActiveCampaign uses its own domain, such as acems1.com, as the return path. SPF still passes there but doesn't align with your From address. Set up the sending domain to fix it, and DKIM to cover DMARC.
Sources
- ActiveCampaign Help: SPF, DKIM, and DMARC authentication
- ActiveCampaign Help: Set up your sending domain
- ActiveCampaign Help: Domains and domain alignment
- RFC 7208: Sender Policy Framework (SPF)
Values checked against ActiveCampaign'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
- SMTP2GONone needed (return-path CNAME)
- 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
- 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