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).
Elastic Email's example value
Type: TXT · Host: @ · 4 of 10 DNS lookups
v=spf1 a mx include:_spf.elasticemail.com ~all
Keep a and mx only if your own web or mail server sends mail; each costs one lookup.
Google Workspace and Elastic Email
Type: TXT · Host: @ · 3 of 10 DNS lookups
v=spf1 include:_spf.google.com include:_spf.elasticemail.com ~all
Microsoft 365 and Elastic Email
Type: TXT · Host: @ · 3 of 10 DNS lookups
v=spf1 include:spf.protection.outlook.com include:_spf.elasticemail.com -all
How SPF applies to Elastic Email mail
Receivers check SPF against the domain in the envelope sender (the MAIL FROM or bounce address). Elastic Email sends with your own domain there, so its include belongs in the SPF record on the domain you send from.
- Elastic Email says most users never add or change MX records for it; an MX warning only means your domain has no mail server set up.
- If no default sender is set and you send from a domain that isn't verified, Elastic Email uses elasticemail.com instead of your domain.
- On 3 November 2026,
_spf.elasticemail.compublished a singleexistsmechanism rather than a list of IP ranges.
How to add it
- In Elastic Email, go to Settings > Domains > Manage Domains, click Start Verification and choose your domain.
- At your DNS host, open the TXT record on
@that starts withv=spf1and addinclude:_spf.elasticemail.com. If there is none, create one. - Add the DKIM TXT record on
api._domainkeyand the tracking CNAME (trackingpointing toapi.elasticemail.com) from the same screen. - Elastic Email says DNS changes can take up to 48 hours. Then check the status in Manage Domains and the live record with the SPF Checker below.
DKIM and DMARC alignment
Elastic Email's DKIM record is a TXT key on api._domainkey, copied from your account. With SPF and DKIM verified, mail is sent as your domain, and DKIM gives DMARC an aligned pass. Elastic Email strongly suggests a DMARC policy of quarantine or reject once that works. See our Elastic Email DKIM page.
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). Elastic Email's include costs 2 on its own. See how to fix too many SPF lookups. - Choosing
~allor-allwithout a plan. Elastic Email'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 a second SPF record for Elastic Email. Elastic Email says there can be only one per domain, so add the include to the existing one.
- Pasting Elastic Email's example value over your current record and dropping the includes your mailbox provider needs.
- Leaving the tracking CNAME proxied on Cloudflare. Elastic Email says to switch it to DNS only.
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 Elastic Email filled in.
Frequently asked questions
What is the SPF record for Elastic Email?
Elastic Email's example is v=spf1 a mx include:_spf.elasticemail.com ~all on your domain (host @). If your domain already has an SPF record, add include:_spf.elasticemail.com to it instead.
Do I need the a and mx terms in Elastic Email's SPF example?
Only if your own web server or mail server sends mail for the domain. Elastic Email needs just include:_spf.elasticemail.com; a and mx each cost a DNS lookup, so drop them if they authorize nothing.
Why does Elastic Email send from elasticemail.com instead of my domain?
Elastic Email says that when no default sender is set and you send from a domain that isn't verified, it uses elasticemail.com. Verify SPF and DKIM for your domain in Settings, Domains, Manage Domains.
Sources
Values checked against Elastic Email's documentation on November 3, 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)
- 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