critical
The block describes one proxy, and it has two required lines: server — where the node should connect, client — which address the proxy must go out from. The port and the name in the second one are optional; the name defaults to the sending address’s name.
Three optional lines configure the protocol, and two of them have three levels: the block itself, then proxy-protocol and proxy-include-tlv on the sending address, then the same lines at the node level. The most precise one wins. The third, retry-attempts, has no levels.
This is one of two ways to write a proxy, and the manual presents them as two ways of doing the same thing. The second is smtp-proxy-source-host, a line instead of a block. The difference is where the link lives: the line carries the local address, the proxy, the external address and the name in one entry and rotates round-robin; the block is named, and sending addresses refer to it.
Hence the practical rule for choosing. One rented address per stream — a line is more convenient. Two or three proxies shared by many streams — blocks are more convenient.
🔎 The block form stays in reserve — for a second gate, should one be needed: the use-proxy list is a fallback, not a balancer.
The mechanism has no values of its own — five lines set them:
| Line | Required | Levels |
|---|---|---|
| server | yes | one |
| client | yes | one |
| protocol-version | no | three |
| include-tlv | no | three |
| retry-attempts | no | one |
# the block is named, sending addresses refer to it <proxy mta-proxy-a> server 10.1.2.3:5000 client 16.70.55.233:0 client.hostname.com protocol-version 2 include-tlv domain </proxy> <virtual-mta vmta> smtp-source-host 10.8.9.10 vmta.hostname.com use-proxy mta-proxy-a </virtual-mta>
what people get wrong and how it ends2 mistakes▶
§ 3.3.22.2
§ 3.3.22
4 relations
use-proxyGlobalThe line that assigns a declared block to sending addresses. § 3.3.22
The load balancer header at the entranceThe outgoing half of the same protocol: there the node sets the header, here it reads it. § 3.3.17.16server<proxy>The mechanism in which this line is half of the required minimum. § 3.3.22.1client<proxy>The mechanism in which this line is the second half of the required minimum. § 3.3.22.2protocol-version<proxy>The mechanism for which this line sets the protocol version. § 3.3.22.3include-tlv<proxy>The mechanism for which this line adds a field to the header. § 3.3.22.4retry-attempts<proxy>The mechanism for which this line sets the threshold for switching to a backup. § 3.3.22.5
dig +short -x 16.70.55.233
3 articles
◇Cloud restrictionsClouds restrict outbound mail on port 25 until you ask them to lift the limit, and mailbox providers treat their address ranges with suspicion.◇The sending address — what it is made ofA named set of everything that is a property of the address: which IP the message leaves from, how the node introduces itself, what it signs with and how fast it sends.◇The sender names the stream for each messageThe message carries the name of the stream it should be sent through — the choice is made by the submitting program, not by the node configuration.