<transmissions-api-listener>
When a load balancer stands in front of the node, the connection comes from it, and the real client address is lost. The line enables accepting the PROXY header: the load balancer sends it first, and the node extracts the client’s address and port from it and treats them as the source from then on. The default is false.
The engine detects the version itself — it understands both without configuration. This distinguishes the input from the output, where the version is set explicitly.
🔴 The header is mandatory, not optional. With the line on, the node closes the connection if no header arrives. That is, a client that connects directly, bypassing the load balancer, will be rejected — and that is right, since otherwise the address could be spoofed.
Everything that looks at the source address depends on this: <source> blocks, limits, statistics. A mistake here looks not like a proxy error but like “the lists work incorrectly.”
🔎 If a load balancer appears, the line has to be enabled at the same time as it, not in advance: without it the line stops receiving entirely.
The line and the load balancer are enabled together:
| Value | When |
|---|---|
| no (default) | clients connect directly |
| yes | a load balancer stands in front of the node and already sends the header |
There is no intermediate state: the header is either always expected or never.
# enable it together with the load balancer, not in advance <transmissions-api-listener 127.0.0.1:4433> use-inbound-proxy yes inbound-proxy-timeout 5s </transmissions-api-listener>
what people get wrong and how it ends2 mistakes▶
§ 3.3.21.13
our experience
1 relation
nc -zv NODE 4433
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.