SPF Pass but DMARC Fail: How to Fix Alignment
The short answer (what's causing it)
DMARC needs SPF or DKIM to pass and align with the From: domain. SPF checks the envelope sender (Return-Path); many platforms use their own bounce domain, so SPF passes for their domain, not yours.
Step-by-step fix
- Open the message headers and compare
smtp.mailfromwithheader.from. - Configure a custom Return-Path / bounce domain in the sending platform (often a CNAME), or
- Enable DKIM signing with your own domain (
d=yourdomain) — the most robust fix. - Re-test; the header should show
dmarc=pass.
Record examples (replace example.co.uk with your domain)
Authentication-Results: spf=pass smtp.mailfrom=bounces.vendor.com; dkim=none; dmarc=fail header.from=example.co.uk
# Fix: bounce.example.co.uk CNAME <vendor-bounce-host> and/or enable DKIM d=example.co.uk
Examples are illustrative templates, not values for your domain. Test changes at
p=none/ staging first.
Check yours free in seconds
Run the free 20-check SuperTool on your domain: no signup, no install, public DNS only. Relevant checks: SPF, DKIM, DMARC.
Scan my domain free (20-check SuperTool) → £24 Sovereign DMARC (T0 RUA), SPF, MTA-STS & PHP2Shell Remediation Pack → £5 Website Launch Special Quick-Fix Pack →One-off download via PayPal guest checkout, no subscription. Packs contain DNS/config templates and scripts you run yourself.
Frequently Asked Questions
What is relaxed vs strict alignment?
Relaxed (`aspf=r`, default) allows subdomains of the same organisational domain; strict requires an exact match.
Is DKIM alignment enough alone?
Yes — DMARC passes if either aligned SPF or aligned DKIM passes.
Related FaultyPacket guides & tools
- Free 20-check SuperTool
- Zero-downtime DMARC p=reject, SPF & MTA-STS rollout
- DMARC RUA first-party reporting vs external SaaS
- Shopify, WooCommerce & WordPress email guide
Authorised use: only scan domains you own or are authorised to inspect. Results are point-in-time public DNS observations.