Home / Mail / Mail
Mail SPF proxy versus origin split response
A Mail proxy versus origin split note for SPF: mail delivery failure caused by SPF/DKIM/DMARC alignment, MX routing, SMTP authentication, bounce policy, or blacklist reputation. It includes evidence, output examples, branches, and the smallest reliable fix.
grep -R "SPF" ./logsTreat SPF as a proxy versus origin split case. First collect evidence for whether the edge/proxy or the origin server creates the failure.
When this happens
Use this when a cdn, load balancer, reverse proxy, or waf sits in front of the service. Do not stop at the screen message; validate whether the edge/proxy or the origin server creates the failure first.
Symptom checklist
- SPF appears repeatedly in the Mail UI or logs.
- SPF, DKIM, DMARC, MX, raw bounce differs between successful and failed requests.
- The issue appears only after separating sender auth failure from receiver blocking.
- It often follows deploys, permission changes, configuration edits, or data refreshes.
Likely causes
- SPF specifically changes the investigation surface for Mail: verify the exact failing object, route, user, and timestamp before applying the broader pattern.
- The sending IP is not authorized by SPF or the envelope domain differs from the visible From domain.
- DKIM signs with a selector that DNS does not publish or receivers cannot verify.
- DMARC alignment fails even when SPF or DKIM individually pass.
- MX or SMTP auth points to an old provider after migration.
- A blacklist or recipient policy rejects the message after SMTP handoff.
- For the proxy versus origin split case, the first useful clue is whether the edge/proxy or the origin server creates the failure.
First 1-minute checks
- Write down the first failure time, latest change, affected user, path, and object ID.
- Compare SPF, DKIM, DMARC, MX, raw bounce for success and failure in the same window.
- Test the hypothesis: mail delivery failure caused by SPF/DKIM/DMARC alignment, MX routing, SMTP authentication, bounce policy, or blacklist reputation.
- Classify this as proxy versus origin split: whether the edge/proxy or the origin server creates the failure.
- Capture current values before changing configuration.
First evidence
Treat SPF as a proxy versus origin split case. First collect evidence for whether the edge/proxy or the origin server creates the failure.
Output examples
Normal output
Direct origin and routed proxy return equivalent status and headers.Failing output
Origin succeeds but proxy fails, or proxy succeeds while direct origin exposes the real backend error.Output-to-action branches
- A CDN, load balancer, reverse proxy, or WAF sits in front of the service.
Test direct origin and routed traffic separately, then change only the layer that differs. - The working and failing outputs differ.
Act on the differing layer first: For SPF, apply the fix only after reproducing the same condition and saving the before/after evidence for this exact code. - Command output is normal but users still fail.
Separate browser cache, cookies, permissions, and network location before declaring it fixed.
Do not do this
- Do not assume the CDN error code is the application root cause.
- Do not change multiple layers before identifying the failing layer.
- Do not delete production data, grant broad permissions, or disable security controls as a first response.
Evidence quality
Auto-generated operator draft: includes issue-specific causes, commands, output branches, and unsafe-action warnings. Official-source links and real incident validation are queued for enrichment.
Commands to run first
grep -R "SPF" ./logsdig example.com MX +shortdig example.com TXT +shortopenssl s_client -starttls smtp -connect mail.example.com:587grep -R "SPF" /var/log/mail*dig TXT example.com +shortdig MX example.com +shortgrep -R "spf\|dkim\|dmarc\|550\|554\|bounce" ./mail-logs ./logscurl -Iv https://example.com --resolve example.com:443:ORIGIN_IPFix order
- Record the full SPF message, failing URL, user, object ID, and latest change.
- Collect issue-specific evidence for mail delivery failure caused by SPF/DKIM/DMARC alignment, MX routing, SMTP authentication, bounce policy, or blacklist reputation.
- Compare the failing case with a successful case before editing settings.
- If this is the proxy versus origin split branch, Test direct origin and routed traffic separately, then change only the layer that differs.
- Re-check with the same command and URL, then record the normal output.
Actions by cause
- For SPF, apply the fix only after reproducing the same condition and saving the before/after evidence for this exact code.
- Check SPF, DKIM, and DMARC results from the receiver's headers.
- Publish the exact DKIM selector used by the sending service.
- Align envelope, header From, and signing domains.
- Confirm MX and SMTP credentials belong to the active mail provider.
- Handle 550/554 bounce codes by policy reason, not by retrying blindly.
- For the proxy versus origin split branch, Test direct origin and routed traffic separately, then change only the layer that differs.
Evidence links
- Google Postmaster Tools official
- DMARC overview official
Verification metadata
- operator-draft
- official-reference-linked
- 2026-07-23
Update queue
- Review cadence
weekly-source-review - Next enrichment
Add one official-source check and one real output example for Mail SPF.
Environment-specific checks
- Shared hosting, proxies, VPNs, or CDN layers can change sender auth failure from receiver blocking results.
- Do not trust only the Mail UI; compare command output.
- Japanese hosting panels may show completion before DNS or SSL fully propagates.
- Test from both office and external networks.
Prevent it next time
- Store normal examples for SPF, DKIM, DMARC, MX, raw bounce.
- Add SPF include, DKIM selector, DMARC policy, reverse DNS to the release checklist.
- Keep recurring errors in the same note format.
- Split alerts by error rate, latency, certificates, disk, and permission changes.