<source>
A permanent error means the reverse check could not be completed because of how the data is set up: the zone for the address is not delegated, the response cannot be parsed, the record is contradictory. The default is to let it through.
This is neither a sender’s fault nor a network failure. The owner of the address block simply did not finish the setup — a common thing at hosting providers and clouds, where reverse zones are filled in partially.
Like the whole family, the line works only with check-iprev-inbound enabled.
Keep the default. Of the three outcomes of the reverse check, this one says the least about the sender.
The result will end up in the header anyway. It can be taken into account further down the chain without rejecting the message.
Reject only together with other signals. On its own it proves nothing.
# the default is kept deliberately: the sender does not manage the zone <source 0/0> check-iprev-inbound true reject-iprev-check-permerror false</source>
what people get wrong and how it ends1 mistake▶
our experience
1 relation
grep -n reject-iprev-check-permerror /etc/pmta/config grep -ci 'iprev' /var/log/pmta/pmta.log
3 articles
◇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.◇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.◇Address lists — named and unnamedA list of addresses, domains, patterns or hashes; a named one is attached by directives such as suppression, an unnamed one lives inside an inbound mail processor.