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 Shopify mail
Shopify sends with a bounce (MAIL FROM) address on a domain it manages, so receivers check SPF there, not on your domain. You don't add anything to your SPF record for it; your domain is authenticated with DKIM instead.
- Your store must be on an active paid plan to add the CNAME records; Shopify excludes client transfer stores, development stores and the Pause and Build plan.
- If you bought the domain through Shopify, Shopify says DKIM, SPF and DMARC are set up automatically.
- Until the domain is authenticated, Shopify rewrites the sender address to one on
shopifyemail.com, such asstore+123@shopifyemail.com.
How to add it
- In the Shopify admin, go to Settings, then Notifications, and find the Sender email section.
- Click to authenticate your domain. Domains at Cloudflare, GoDaddy or IONOS can be set up automatically; otherwise add every CNAME record Shopify shows (the number varies).
- Add a DMARC TXT record at
_dmarcif you don't have one. Shopify's default isv=DMARC1; p=none;. - Wait for the status to change from Propagating to Authenticated. Shopify says it can take up to 48 hours.
DKIM and DMARC alignment
The same CNAME records set up DKIM for your sender email domain. Shopify warns that a DMARC record with strict alignment (adkim=s or aspf=s) should be relaxed to adkim=r and aspf=r, and that a domain must have only one DMARC record. See our DMARC record examples.
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). Shopify adds nothing to your count, which is one more reason not to add an include for it. 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 Shopify include or Shopify IP addresses to your SPF record. Shopify says neither is needed.
- Deleting the CNAME records later. Shopify then resets your sender address until the records are back.
- Publishing a second DMARC record instead of updating the existing one.
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 Shopify to my SPF record?
No. Shopify says the CNAME records from email domain authentication handle SPF for your sender email address, so you don't need a separate SPF TXT record or any IP addresses. Your existing SPF record stays as it is.
Why does Shopify send my store emails from shopifyemail.com?
Because the sender email domain isn't authenticated, or the CNAME records were removed. Shopify rewrites the sender to an address such as store+123@shopifyemail.com until all the records are found and the status shows Authenticated.
What DMARC record does Shopify suggest?
A TXT record with host _dmarc and value v=DMARC1; p=none;, Shopify's default. If you already have a DMARC record, update it rather than adding another, and avoid strict adkim=s or aspf=s alignment.
Sources
- Shopify Help Center: Setting up your sender email address and domain authentication
- RFC 7208: Sender Policy Framework (SPF)
Values checked against Shopify'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
- ActiveCampaignNone needed (Mailserver Domain CNAME)
- SquarespaceNone needed
- 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