<source>
Of the three check outcomes this one is the most definite: the domain’s SPF record exists, it can be read, and it says that sending mail from this address is not allowed. The domain owner declared this themselves.
The line decides whether to reject such a message at the sender command — with a permanent refusal. The default is to reject.
Of the three, this is the only one whose default is beyond dispute. In the other two outcomes — an error in the record and a temporary failure — the sender declared nothing; here the declaration is explicit.
Keeping the refusal is fine. This is the only outcome where the sender has spoken directly.
But not where forwarding is expected. Mailing lists and mail gateways fail the check by design; for such sources the refusal has to be turned off.
The refusal is permanent. The sender will not retry — unlike with a temporary error.
# we reject what the sender's domain itself did not acknowledge <source 0/0> check-spf-inbound true reject-spf-check-fail true</source>
what people get wrong and how it ends2 mistakes▶
our experience
our experience
2 relations
grep -n reject-spf-check /etc/pmta/config grep -i 'spf' /var/log/pmta/pmta.log | tail -5
3 articles
◇Two inbound report processors and what to do with themBounces by message and complaints are parsed by two identically structured blocks; each has its own address list and its own pair of decisions about the message’s fate.◇What to do with an accepted messageWhat the node does with an accepted inbound message: forwards it, writes it to a file, discards it, passes it to a program or parses it as a bounce or complaint.◇Who is allowed to submit mail and for whom to accept itOut of the box, the node accepts submission only from the machine itself; two different questions — “who can send through us” and “for whose addresses we accept mail” — are answered by different directives.