Suped

Why is SPF failing in SFMC even though it appears to pass, and how do I fix it?

Published 9 Jun 2025
Updated 21 Oct 2026
13 min read
Summarize with
SPF authentication and DMARC SPF alignment checks for Salesforce Marketing Cloud email.
Updated on 21 Oct 2026: We clarified SFMC bounce-domain fixes and added forwarding checks to distinguish SPF authentication errors from DMARC alignment failures.
SPF can fail in your DMARC data even though it passes for a Salesforce Marketing Cloud Engagement (SFMC) message because authentication and alignment are separate checks. The receiving server checks SPF for the bounce domain, also called the MAIL FROM or Return-Path domain. DMARC only gives SPF credit when that SPF-authenticated domain meets the alignment requirements for the visible From domain. Under relaxed alignment, the default, the two domains must share the same organizational domain. Under strict SPF alignment, set with aspf=s, they must match exactly.
In SFMC, this often happens when the Sender Authentication Package (SAP) uses a parent-brand bounce domain, while the message's visible From address uses a Private Domain under a different organizational domain. The receiver's header can show spf=pass while the SPF alignment result in your DMARC aggregate (RUA) reports is fail.
The fix is to prove which domain SPF was evaluated against, then decide whether to enable Multi-Bounce Domain for the Member ID (MID), change the visible From domain strategy, or accept that DKIM is carrying DMARC while SPF stays unmatched. Do not start by adding random includes or IPs to the root SPF record. That usually edits the wrong DNS record.

Why SPF can pass in SFMC but fail DMARC

Salesforce Marketing Cloud Engagement sender settings with From and bounce domains.
Salesforce Marketing Cloud Engagement sender settings with From and bounce domains.
There are two separate checks in this situation. First, the receiving server checks whether the sending IP is authorized by the SPF record at the MAIL FROM domain. Second, DMARC checks whether that MAIL FROM domain meets the alignment requirements for the domain in the visible From address. The SPF entry in Authentication-Results shows the first result. A DMARC report records both authentication and alignment.
That is why the phrase "SPF passed" is incomplete unless it names the domain. SPF passed for bounce.parentbrand.example is not the same as SPF aligned with brand.example for DMARC. The exact domain matters more than the word pass.
SPF authentication pass
  1. Checked domain: Usually the MAIL FROM or Return-Path domain.
  2. Result meaning: The sending IP was authorized by that domain's SPF record.
  3. Where seen: Authentication-Results or Received-SPF headers added by the receiving server.
SPF pass for DMARC
  1. Checked domain: The SPF domain compared with the visible From domain.
  2. Result meaning: SPF gets DMARC credit only when those domains meet the alignment requirements.
  3. Where seen: DMARC aggregate reports and DMARC monitoring platforms.
Do not chase the wrong SPF record
If SFMC sends with a bounce subdomain, the SPF record that matters for header SPF is the bounce domain's SPF record. The SPF record at the organizational domain can be completely unrelated to that check.
  1. Root record: Checked directly when the root domain is the MAIL FROM domain, or indirectly if the bounce SPF record references it through include or redirect.
  2. Bounce record: Usually the record SFMC uses for SPF in a SAP configuration.
  3. DMARC result: Depends on whether the SPF domain meets the alignment requirements for the visible From domain.

How SAP and Private Domains affect SPF alignment

A Sender Authentication Package applies a SAP domain to an account or MID, while Private Domains authenticate additional visible From domains. By default, the Envelope From remains fixed to the SAP bounce domain even when a Private Domain uses a different organizational domain. That setup produces an SPF alignment failure until the MID uses a matching domain strategy or Salesforce enables Multi-Bounce Domain.
A 0% SPF alignment rate across an SFMC sending stream is a reason to compare domains first, but it does not prove the cause. A missing SPF record or invalid policy can also affect every message. Check the raw SPF authentication result before changing the bounce-domain setup.

Element

Example

Why it matters

Visible From
brand.example
DMARC compares SPF and DKIM domains with this domain.
Return-Path
bounce.parentbrand.example
SPF is commonly evaluated at this domain.
DKIM d=
mail.brand.example
DKIM can satisfy DMARC when its domain meets the alignment requirements.
MID
123456
Different business units can have different sender settings.
Common SFMC domain roles that affect SPF interpretation.
A passing DMARC result or a displayed BIMI logo does not prove SPF alignment. DKIM alone can satisfy DMARC when it passes with alignment.

How to prove the exact cause

Start with the receiving server's Authentication-Results in the full message source, then compare them with DMARC aggregate rows for the same source and reporting period. The goal is to identify which domain passed SPF and whether it met the visible From domain's alignment requirements.
  1. Pull headers: Send test messages through every SFMC MID, business unit, and IP pool used by the brand.
  2. Find From: Record the visible From domain that recipients see in the message.
  3. Find Return-Path: Record the bounce domain, also shown as MAIL FROM in many authentication headers.
  4. Read SPF: Note the SPF result and the domain in smtp.mailfrom. A separate smtp.helo pass is not the MAIL FROM result for a normal message with a nonempty envelope sender.
  5. Compare domains: For relaxed alignment, check whether the SPF domain and visible From domain share the same organizational domain. For aspf=s, check for an exact domain match.
  6. Check RUA: Compare auth_results/spf/result for the MAIL FROM domain with row/policy_evaluated/spf. A raw SPF pass paired with a DMARC SPF fail identifies an alignment failure.
Header pattern that causes confusiontext
Authentication-Results: mx.example; spf=pass smtp.mailfrom=bounce@bounce.parentbrand.example; dkim=pass header.d=mail.brand.example; dmarc=pass header.from=brand.example Return-Path: <bounce@bounce.parentbrand.example> From: Brand <news@brand.example>
In that header, SPF passed for bounce.parentbrand.example. DMARC does not count that as SPF aligned with brand.example because the SPF domain belongs to a different organizational domain. DMARC still passed because DKIM used mail.brand.example, which meets the alignment requirements for brand.example under relaxed DMARC rules.
After you know which domain SPF is testing, validate that exact domain with the SPF checker. Do not test only the top-level brand domain unless the top-level brand domain is the MAIL FROM domain.

SPF checker

Find SPF syntax issues, lookup limits, and weak records.

?/16tests passed
A valid SPF record does not prove that a particular sending IP passed SPF. Confirm the receiver-reported result for that message. In aggregate XML, auth_results/spf contains raw authentication results, while row/policy_evaluated/spf is the DMARC SPF result, including alignment. RFC 9990 defines these separate report fields.

When forwarding causes SPF failures

If SPF fails only at certain destinations, compare direct delivery with the affected route before changing SFMC DNS. Salesforce's troubleshooting guidance recommends testing multiple recipient domains and comparing passing and failing headers.
  1. Send the same SFMC message to direct consumer mailboxes and the affected corporate domain. Keep the MID and sending domain consistent.
  2. Inspect the failing receiver's connecting IP, often shown as client-ip, and trace Received headers to identify a forwarder or gateway.
  3. If the forwarder keeps the original MAIL FROM, its IP needs authorization for SPF to pass. Rewriting MAIL FROM under the forwarder's domain can produce SPF pass without DMARC SPF alignment. RFC 7960 describes this forwarding behavior.
  4. Check DKIM separately. A valid signature can survive forwarding, but changes to signed content can break it. Ask the recipient administrator to investigate that route.
Multi-Bounce Domain corrects SFMC domain selection; it does not repair forwarding. A receiver that trusts an Authenticated Received Chain (ARC) can use earlier results when deciding delivery, but ARC does not turn a failed SPF check into a pass.

Fix options in SFMC

The right fix depends on whether SPF authentication failed or the authenticated domain failed alignment. Use the raw receiver result to choose a DNS repair or a bounce-domain change.
  1. Multi-Bounce fix: For Private Domains with different organizational domains, prepare each bounce domain and ask Salesforce Support to enable Multi-Bounce Domain on the MID.
  2. Brand fix: Use a visible From domain that shares the same organizational domain as the existing SAP bounce domain, if relaxed SPF alignment is intended.
  3. MID fix: Check every child account and business unit for separate sender, SAP, Private Domain, and bounce settings.
  4. SPF fix: For a raw SPF fail, repair authorization on the actual MAIL FROM domain using the DNS values supplied for your SFMC account.
  5. DKIM fix: Keep DKIM passing with an aligned domain so DMARC remains healthy while SPF is corrected.
Multi-Bounce Domain for a domain mismatch
For an MID that sends through Private Domains on different organizational domains, Multi-Bounce Domain is the direct SFMC fix. It changes the Envelope From to bounce.[Private Domain] for each message, which allows SPF alignment under relaxed DMARC rules.
Example DNS patterndns
example.com. TXT "v=spf1 include:_spf.example.net -all" bounce.example.com. TXT "v=spf1 include:cust-spf.exacttarget.com -all"
That example shows why the tested domain matters. If SFMC uses bounce.example.com as the MAIL FROM domain, its SPF record controls header SPF. Apply only the DNS values supplied for your SFMC account. If Salesforce hosts the delegated zone, request repairs through Salesforce Support.
The MAIL FROM domain must have exactly one SPF TXT record. An SPF permerror indicates a policy error, such as duplicate SPF records or exceeding the limit of 10 DNS-lookup-causing terms, including nested includes. An SPF temperror indicates a temporary problem, usually DNS. RFC 7208 defines these results and limits. SPF flattening addresses lookup limits; it does not repair domain alignment.

Use Multi-Bounce Domain with Private Domains

Multi-Bounce Domain changes the Envelope From at the MID level. SFMC then generates a bounce domain for the authenticated Private Domain on each message, such as bounce.brand.example. Follow Salesforce's Multi-Bounce Domain requirements for the target MID.
  1. Confirm the MID: Identify the MID that has a SAP domain and one or more Private Domains on different organizational domains.
  2. Prepare bounce DNS: Make sure the MX and SPF records for bounce.[Private Domain] resolve correctly. Delegated domains must be delegated to Salesforce, while self-hosted domains need the supplied records in your DNS.
  3. Open a support case: Ask Salesforce Support to enable Multi-Bounce Domain and provide the target MID plus a target Private Domain for verification.
  4. Test every domain: After enablement, send through each Private Domain and verify the Return-Path, SPF authentication, SPF alignment, DKIM alignment, and overall DMARC result.
Check strict SPF alignment
Multi-Bounce Domain normally creates a Return-Path such as bounce.brand.example for a visible From domain of brand.example. That passes relaxed SPF alignment because both share the same organizational domain. It does not pass aspf=s because strict alignment requires an exact domain match. Review the DMARC policy before treating Multi-Bounce Domain as a strict-alignment fix.
Once Multi-Bounce Domain is enabled for an MID, Salesforce applies the behavior to Private Domains added to that MID later. Their bounce DNS still needs to resolve before live sending.

What to send Salesforce Support

Ask Salesforce Support to investigate when a specific MID uses an unexpected bounce domain or the actual SFMC sending IP fails SPF authentication. Include the exact domains and receiver results; a 0% SPF alignment rate alone does not identify the fault.
Escalate to Support
  1. Wrong domain: The MID uses a bounce domain outside the intended brand domain.
  2. Mixed setup: Different business units use different SAP, Private Domain, or bounce settings.
  3. SPF auth: The actual bounce domain does not authorize the sending IP.
Check first
  1. Root SPF: The top-level SPF record is not always part of the SFMC check.
  2. DKIM pass: DMARC can pass through DKIM while SPF remains unaligned.
  3. Raw results: Compare raw SPF authentication with the DMARC SPF result before requesting a DNS change.
Include failing and passing message headers, UTC send times, recipient domains, the DMARC aggregate row, the MID and business unit, and the connecting IP. Record the visible From domain, Return-Path domain, and receiver-reported SPF result.
Support packet templatetext
Subject: SPF alignment review for SFMC MID 123456 Visible From: news@brand.example Return-Path: <bounce@bounce.parentbrand.example> SPF header result: pass for bounce.parentbrand.example DMARC RUA result: SPF alignment failed for brand.example DKIM result: pass for d=mail.brand.example Target Private Domain: brand.example UTC send time: [actual timestamp] Recipient domain: [affected domain] Connecting IP: [IP recorded by the receiver] Comparison: [passing header from the same sending setup] Request: confirm prerequisites and enable Multi-Bounce Domain for MID 123456.

Monitor SFMC authentication in Suped

Suped is our DMARC reporting and email authentication platform. For this workflow, Suped groups DMARC data by source and domain so teams can identify the SFMC stream, the SPF-authenticated domain, the visible From domain, and whether the failure came from SPF authorization or DMARC alignment.
SPF flattening drawer showing an over-limit record, sender editing, lookup counts, and the hosted record setup
Suped combines parsed DMARC aggregate data with SPF and DKIM diagnostics. For SFMC, that keeps authorization failures separate from domain-alignment failures without requiring a manual review of raw XML for every report.
  1. Source grouping: Filter SFMC traffic by source, sending IP, and domain before comparing authentication results.
  2. Alignment diagnosis: Separate an SPF record failure from an authenticated but unaligned Return-Path.
  3. DNS operations: Suped's Hosted SPF can simplify the correct bounce domain's SPF record, but it cannot fix a domain mismatch.
  4. MID verification: Match source IPs and sending domains to your SFMC configuration. Standard DMARC aggregate reports do not contain the MID or business unit ID.
For a broader scan across SPF, DKIM, DMARC, and DNS health before opening a support case, run the domain health check. It gives a baseline, then DMARC data confirms what receivers saw at scale.

How to prioritize an SFMC SPF failure

SFMC SPF diagnosis flow from headers to domain comparison and fix selection.
SFMC SPF diagnosis flow from headers to domain comparison and fix selection.
Use a simple flow: identify the MAIL FROM domain, verify the receiver's raw SPF result, then check DMARC alignment. Repair DNS for authentication errors; investigate bounce-domain selection when SPF passes without alignment.
Fast triage rule
If SPF fails alignment but DKIM passes with alignment, DMARC still passes. Check raw SPF results before deciding whether DNS or Multi-Bounce Domain needs attention.
SPF alignment failure leaves DKIM as the DMARC passing path for that message. If DKIM verification later fails, DMARC fails too unless SPF passes with alignment. Passing authentication still does not guarantee inbox placement.

Views from the trenches

Best practices
Capture headers for every MID and compare From, Return-Path, DKIM d, and SPF domain.
Validate the bounce domain SPF record before changing the top-level organization record.
Use RUA data to distinguish raw SPF authentication failures from DMARC SPF alignment failures.
Common pitfalls
Treating a header SPF pass as a DMARC SPF pass hides the domain-match issue in SFMC.
Adding every sending IP to top-level SPF increases risk and often fixes the wrong domain.
Testing one business unit misses MID-specific bounce settings that affect some sends.
Expert tips
If SPF alignment is 0%, compare domains and raw authentication before changing IP authorization.
Keep DKIM passing with alignment during SPF repairs so it can still satisfy DMARC requirements.
Ask Salesforce Support to confirm the actual bounce domain used by each affected sending MID.

Marketer view

Marketer from Email Geeks says an SPF pass can be unhelpful when it passes for the SFMC sender domain but not for the client domain DMARC checks.
2024-05-08 - Email Geeks

Marketer view

Marketer from Email Geeks says domain matching issues have become more visible as mailbox provider dashboards report authentication more strictly.
2024-05-08 - Email Geeks

Frequently asked questions

DMARC monitoring

Start monitoring your DMARC reports today

Suped DMARC platform dashboard
What you'll get with Suped
Real-time DMARC report monitoring and analysis
Automated alerts for authentication failures
Clear recommendations to improve email deliverability
Protection against phishing and domain spoofing