SparkPost SPF and DKIM setup
The DKIM record that aligns SparkPost mail by default, the optional SPF include and bounce domain for SPF alignment, and the appended-domain trap that stops DKIM verifying.
What you are setting up
SparkPost (now part of Bird) sends your transactional mail. Like other transactional platforms, DKIM is what carries DMARC: you publish one DKIM record and SparkPost signs with your domain, which aligns out of the box. SPF is optional, it only aligns if you also set a custom bounce domain, so think of DKIM as the required step and the SPF pieces as a belt-and-suspenders add-on.
Set up DKIM
In SparkPost, go to Configuration > Domains and create a sending domain. SparkPost generates a DKIM key and shows you a TXT record to publish:
Type: TXT Host: scph0623._domainkey (the scph selector SparkPost shows you) Value: v=DKIM1; k=rsa; h=sha256; p=MIGf... (the key SparkPost shows you)
The selector is scph followed by a four-digit date stamp (so it looks like scph0623), and both the selector and the key are generated for your account, so copy the exact values from the dashboard, do not reuse one from an example. Once the record resolves, verify the domain. DKIM signs with d=yourdomain.com, so this alone is enough for SparkPost mail to pass DMARC.
Optional: align SPF with a bounce domain
By default, SparkPost's return-path is a sparkpostmail.com address, so SPF authenticates but does not align to your domain. If you want SPF alignment too, publish the SPF record and a custom bounce-domain CNAME (the target is shown in your dashboard):
Type: TXT (SPF)
Host: @
Value: v=spf1 include:_spf.sparkpostmail.com ~all
(EU accounts: include:_spf.eu.sparkpostmail.com)
Type: CNAME (custom bounce / return-path)
Host: bounce.yourdomain.com
Value: (the hostname SparkPost shows you in the dashboard)Note the SPF host is _spf.sparkpostmail.com (with the _spf. prefix), a detail that is easy to get wrong. The bounce domain only takes effect once you reference it in your sends (the API return_path or SMTP MAIL FROM), it is not applied automatically.
Add DMARC
Standard _dmarc TXT record. Start in monitor-only mode:
Type: TXT Host: _dmarc Value: v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com
Build it with our DMARC builder and progress past p=none once your reports are clean.
The SparkPost gotcha
The classic SparkPost failure is the DNS host appending your domain to the DKIM host, turning scph0623._domainkey into scph0623._domainkey.yourdomain.com.yourdomain.comso the key never verifies. Enter only the selector portion. The second is an alignment trap: people verify DKIM, see “verified,” and assume DMARC is fully covered, but without the custom bounce domain their SPF still authenticates on sparkpostmail.com and does not align. That is fine, DKIM carries DMARC, just do not be surprised by an SPF-unaligned line in your reports.
Confirm it worked
- Check the DKIM record. Our DKIM checker confirms the
scphrecord resolves and a key is published. - Send a test and read the headers. Send through SparkPost, open the message, and confirm the DKIM signature shows
d=yourdomain.comanddmarc=pass. Our header analyzer reads it back plainly. - Watch the reports. SparkPost should appear as an aligned, passing source in your DMARC aggregate reports, labeled as a known sender in trustyourinbox.
Connect your DNS once and we publish the SparkPost records above in a single click, with a five-minute window to undo. Then we keep watching this sender in your DMARC reports and tell you the moment SparkPost mail starts failing, so a typo in a record never quietly costs you the inbox.
Keep reading
Run a free DMARC audit
Paste your domain and see your published SPF, DKIM, and DMARC in plain English.
DMARC alignment, in plain English
Why SparkPost DKIM aligns by default but SPF needs a custom bounce domain.
DKIM record checker
Confirm the scph DKIM record resolves and is signing your mail.
Amazon SES SPF and DKIM setup
Another transactional ESP where DKIM aligns and SPF needs a custom return-path.
Last verified 2026-06-23 against the official SparkPost documentation.
Free for one domain. Set up in five minutes. We parse the reports; you read plain-English summaries.