Skip to content
iBlockSpam
SPF by provider

SPF record for SparkPost

SparkPost doesn't ask for an include in your root SPF record. SPF for SparkPost mail is checked on the bounce domain, the return-path address. To put it on your own domain, create a subdomain with a CNAME pointing to sparkpostmail.com (eu.sparkpostmail.com for SparkPost EU) and verify it as a bounce domain. Sign with DKIM too.

Include
None needed (bounce-domain CNAME)
Where it goes
Not needed (bounce-domain CNAME)
DNS lookups
0 on your domain

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).

Bounce domain on a subdomain (CNAME, not TXT)

Type: CNAME · Host: bounces

sparkpostmail.com

SparkPost EU accounts point to eu.sparkpostmail.com. Enterprise accounts use <public_tenant_id>.mail.e.sparkpost.com.

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 SparkPost mail

SparkPost 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.

  • A bounce domain can be used only once its CNAME status is valid; MX verification is limited to Enterprise accounts.
  • Because the bounce subdomain is a CNAME, SPF lookups for it follow the CNAME to SparkPost's own published record. On 3 November 2026, sparkpostmail.com published v=spf1 exists:%{i}._spf.sparkpostmail.com ~all.
  • A CNAME can't share a name with other records, so use a subdomain that has no MX, TXT or A record.

How to add it

  1. Create the sending domain in SparkPost and publish its DKIM TXT record (see our SparkPost DKIM page).
  2. Pick a subdomain for bounces, such as bounces.example.com, and create a CNAME there pointing to sparkpostmail.com, or eu.sparkpostmail.com for SparkPost EU.
  3. Add the subdomain as a sending domain and verify it with CNAME verification (cname_verify in the API).
  4. Once its CNAME status is valid, set it as your default bounce domain (is_default_bounce_domain) or pass it in each transmission's return_path.
  5. Verify within two weeks: SparkPost removes sending domains that stay unverified longer. Leave your root SPF record unchanged.

DKIM and DMARC alignment

SparkPost signs with your domain once its DKIM TXT record is verified, and that aligned DKIM pass is what DMARC needs. A bounce subdomain of your From domain adds SPF alignment under relaxed mode. SparkPost warns that verifying a domain by mailbox instead of DNS means it can't DKIM-sign your mail. See our SparkPost 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, exists and redirect costs a lookup, nested ones included; over 10 is a PermError (section 4.6.4). SparkPost 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 ~all or -all without a plan. -all asks receivers to reject unlisted servers; ~all asks 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 include for SparkPost to your root SPF record. SPF is checked on the bounce domain, so the root include spends lookups without changing results.
  • Using a US account target (sparkpostmail.com) on a SparkPost EU account, or the other way round. The CNAME must point at your account's own domain.
  • Setting aspf=s in DMARC. A bounce subdomain only aligns with your From domain under relaxed SPF alignment.

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 add include:sparkpostmail.com to my SPF record?

Not to your root record. SPF for SparkPost mail is evaluated on the bounce (return-path) domain. Point a subdomain at sparkpostmail.com with a CNAME and verify it as a bounce domain; the CNAME brings SparkPost's SPF record with it.

What CNAME does a SparkPost EU bounce domain use?

eu.sparkpostmail.com. US accounts point to sparkpostmail.com, and Enterprise accounts to <public_tenant_id>.mail.e.sparkpost.com. The target has to match the region your account runs in.

How do I make a SparkPost bounce domain the default?

After the CNAME verifies, set is_default_bounce_domain on that sending domain. SparkPost then uses it whenever a transmission doesn't name another bounce domain in its return_path field.

Sources

Values checked against SparkPost'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

Compare every provider's include in one table

Last updated