<smtp-listener>
The load balancer header must arrive first, before anything else. The line sets how long to wait for it. The default is 5s, and when it expires the node drops the connection.
The value 0 is equivalent to never — that is, wait as long as it takes. This is a dangerous setting: a hung connection will hold an acceptance slot indefinitely.
It applies only together with use-inbound-proxy. Without it the header is not expected at all, and there is nothing to wait for.
Five seconds is a lot for a local network. The load balancer usually sits nearby and sends the header immediately; a second is more than enough, and a smaller value cuts off those who came around it faster.
🔎 When one appears, the default will be enough: the header arrives in the very first packet, and five seconds is already plenty.
Less means cutting off outsiders faster:
| Value | When |
|---|---|
| 5s (default) | always |
| 1s | the load balancer is on the same network |
| 0 or never | never: acceptance slots will be taken forever |
# the load balancer is on the same network — a second is enough <smtp-listener 0/0:2525> use-inbound-proxy yes inbound-proxy-timeout 1s</smtp-listener>
what people get wrong and how it ends1 mistake▶
our experience
2 relations
time nc NODE 2525 </dev/null
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.◇Headers the sender uses to control deliverySix control headers let the submitting side choose a stream, tag a message with a job, set signing options and the key, the envelope identifier and the schedule; each is allowed separately and per source.◇The load balancer header at the entranceThe node reads the PROXY header at the start of an incoming connection and treats the address from it as the source; this works for both kinds of entry point.