SPF ~all vs -all: Softfail or Hardfail?
The short answer (what's causing it)
-all (fail) says unlisted servers are not authorised; ~all (softfail) says they probably aren't. With DMARC enforcing, the DMARC policy decides the outcome, so the qualifier matters less than having complete, aligned authentication.
Step-by-step fix
- Confirm all legitimate senders are in SPF.
- Use
~allduring discovery if unsure. - Move to
-allonce reports are clean. - Never use
+all.
Record examples (replace example.co.uk with your domain)
example.co.uk. TXT "v=spf1 include:_spf.google.com -all"
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.
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
Can -all break forwarding?
Some receivers reject on SPF fail before DMARC is evaluated; DKIM-aligned mail is more resilient.
What does ?all do?
Neutral — effectively no assertion.
Related FaultyPacket guides & tools
Authorised use: only scan domains you own or are authorised to inspect. Results are point-in-time public DNS observations.