Deliverability · Practical guide
SPF softfail vs hardfail: choose the final disposition deliberately
Understand what ~all and -all express, then base a policy change on a complete legitimate-sender inventory.
Reviewed · Examples are illustrative
Who this helps: Operators diagnosing authentication, receiving-policy and delivery failures.
Define the decision
Changing the final qualifier is not a repair for missing authorization. If a legitimate sender fails because it is absent from the record, identify that path first. Receiver handling also includes policies beyond SPF.
Work through the procedure
- Collect failures by envelope domain and sending service.
- Separate known legitimate senders from unknown sources.
- Repair missing legitimate authorization and retest each stream.
- Have the domain owner choose the final policy after reviewing the remaining failures.
Worked example
The following is a synthetic example for this procedure, not a customer result or performance benchmark.
Known invoice sender fails SPF
Current ending: ~all
Proposed shortcut: change to -all
Better decision: fix invoice authorization, then assess the final disposition with the ownerRead the result
Softfail signals weaker disapproval than fail. Neither setting should be interpreted as a universal delivery outcome, and a passing unrelated SPF identity still may not satisfy DMARC alignment.
Check before moving on
- Retain a sample from each legitimate service.
- Check the full receiver response rather than attributing every rejection to the qualifier.
Limits and next action
Do not promise that changing ~all to -all improves inbox placement. The operational goal is an accurate policy, with monitoring and rollback for affected legitimate mail.
Source: RFC 7208: SPF result meanings
Source references
Worked examples are illustrative. Editorial procedures are suggested methods, not measured performance claims or promises of additional product features.
Related guides
- SPF: sending-source authorization for the envelope domain →
- Set up an SPF record around your actual sending services →
- SPF permerror: trace too many DNS lookups before editing records →