SPF ends in softfail (~all)
NOTEWhat it means
Mail claiming to be from example.com that fails SPF is marked suspicious rather than rejected. That is the right setting while you confirm who sends your mail. It is not the finish line.
How to fix it
Once your DMARC reports show only known senders, change ~all to -all.
Check your own domain
This page describes the condition. To find out whether your domain has it, run the SPF test or the full checkup, which examines every record at once.
Understand it properly
This page covers one condition. For the whole picture, What is SPF, and the ten-lookup limit, or start at the Health Library.
Where this comes from
We judge this against RFC 7208 section 5.1. Every finding on this site cites the specification behind it so you can check the work rather than take our word for it.
Other SPF conditions
SPF_SOFTFAIL_ADVISORY
Every fix on this site is yours to implement. If you would rather someone did it, I take this work directly.