SPF Softfail (~all): What It Means and When to Use -all Instead
Last updated 2026-05-29 — By The InboxGreen Team
SPF ~all (softfail) means emails from senders not listed in your SPF record should be accepted but treated with suspicion. Receivers are advised to flag them but still deliver them. This is a common and acceptable policy while you are building out your SPF record. However, -all (hardfail) is more secure and tells receivers to reject unlisted senders outright. If you are confident your SPF record lists every legitimate sending service, switching to -all improves protection.
What it means
The <code>all</code> mechanism at the end of an SPF record defines what to do with senders not matched by any other mechanism. <code>~all</code> is softfail (flag but deliver), <code>-all</code> is hardfail (reject), <code>?all</code> is neutral (no guidance). Most senders start with <code>~all</code> as it is forgiving while authentication is being set up.
Why it matters
<code>~all</code> alone is not a problem; it shows SPF is configured. But from a security standpoint, softfail gives receivers the option to override and deliver suspicious email. With DMARC enforcement active (<code>p=quarantine</code> or <code>p=reject</code>), the difference between <code>~all</code> and <code>-all</code> matters less, because DMARC will act on failures regardless. Without DMARC enforcement, <code>-all</code> provides more direct protection.
Switching from ~all to -all
v=spf1 include:_spf.google.com include:sendgrid.net -all
Only switch to -all once you are certain every legitimate sender is covered by an include or IP in your SPF record. Run the InboxGreen checker to confirm SPF passes before changing to -all. If anything is missing, hardfail will reject your own legitimate email.
How to fix it
Any DNS provider
- Confirm your SPF record currently passes for all your legitimate sending services.
- Find your SPF TXT record at your domain root.
- Change
~allat the end to-all. - Save and wait a few minutes.
- Run your domain through the InboxGreen checker to confirm SPF still passes.
- Send a test email from each sending service to confirm delivery.
How to verify the fix
- Run your domain through the InboxGreen free checker.
- SPF should show PASS. The change from ~all to -all should not affect a passing result.
- Send test emails from all your legitimate sending services and confirm they arrive in the inbox.
Check your fix right now
Run your domain through InboxGreen's free checker to confirm the issue is resolved.
Common mistakes
- Switching to -all before testing that all legitimate senders are in the record. This can block your own email.
- Confusing ~all with an error. Softfail is valid and common; it is not the same as a broken SPF record.
- Using ?all (neutral). This provides no guidance to receivers and offers no protection.
Frequently asked questions
Related fix guides
- SPF Record Not Found: What It Means and How to Fix It
- Multiple SPF Records: Why It Breaks Email and How to Fix It
- SPF Too Many DNS Lookups: What It Means and How to Fix It