<source>
The flip side of check-spf-outbound: that one checks our outgoing mail, this one someone else’s incoming mail. The node checks the address a message came from against the SPF record of its sender’s domain and adds a header with the check result to the message.
By itself it rejects nothing. The result is only written into a header. Refusing on a failed check is controlled by three separate lines: reject-spf-check-fail, reject-spf-check-permerror and reject-spf-check-temperror — and all three reject by default.
Hence the order: by enabling the check, you immediately enable the refusals too. The line’s default is “do not check,” and that is the only thing keeping the node from refusing on the way in.
Enable it together with a decision about refusals. The three refusal lines reject by default; if only observation is needed, they have to be explicitly switched to “do not reject.”
Observation is a sensible first step. A week of recorded results with no refusals will show what you will reject once you turn them on.
For your own sources the check is redundant. The submitter is known by address; the SPF record answers a question that has already been settled.
# first we only observe: we check but do not reject <source 10.0.0.0/8> check-spf-inbound true reject-spf-check-fail false reject-spf-check-permerror false reject-spf-check-temperror false </source>
what people get wrong and how it ends2 mistakes▶
our experience
our experience
4 relations
reject-spf-check-temperror<source>What to do on a temporary check error; rejects by default. § 3.3.7.69reject-spf-check-permerror<source>What to do on a permanent check error; rejects by default. § 3.3.7.70reject-spf-check-fail<source>What to do on a failed check; rejects by default. § 3.3.7.71
check-arc-inbound<source>A neighboring check of incoming mail: its result goes into the same header. § 3.3.7.18check-dkim-inbound<source>A neighboring check of incoming mail: its result goes into the same header. § 3.3.7.19trace-spf-check<source>The line does not trigger until inbound checking is enabled. § 3.3.7.21check-spf-inbound-best-guess<source>The current line used instead of this one. § 3.3.7.23check-iprev-inbound<source>A neighboring check of incoming mail: its result goes into the same header. § 3.3.7.25check-spf-outbound<domain>The same check from the other side: that one looks at someone else’s incoming mail, this one at your own outgoing mail. § 3.3.7.22
grep -n check-spf-inbound /etc/pmta/config grep -i 'Authentication-Results' /var/log/pmta/pmta.log | tail -5
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.◇The group that grants management rightsMembership in the pmta group gives an unprivileged user the right to call the node’s commands and use submission.◇How the node selects a source and combines its settingsA connection falls under all source blocks whose addresses cover it, and they act merged — the narrow one overrides the wide one; named blocks are attached only by direct reference.