~all (SoftFail) means: IPs not in the SPF list should be treated as suspicious but not outright rejected — receiving servers typically deliver to spam. -all (Fail) means: IPs not in the SPF list should be rejected. For domains with DMARC p=reject, the difference matters less since DMARC handles the enforcement. For domains without DMARC, -all provides stronger protection.
All questions