The task. Sending through rented addresses, each with its own reputation and its own rate.
What it is made of:
The parts have different scopes. Limits are set per recipient and per address, the switch per recipient, and it is sensible to set it once, in <domain *>. Changing the switch requires a restart, not a reload.
How they interact. The first line does not add to the others but changes their meaning: without it, the four source-ip-max-* limits count the node’s local address, shared by all proxies. The fourth is independent but serves the same purpose: without it, a proxy failure and a receiver failure look the same in telemetry.
Four lines:
| Line | Default | What to set |
|---|---|---|
| enable-source-ip-limits-on-sending-ip | false | true in <domain *>, then a restart |
| source-ip-max-msg-rate | unlimited | the rate of the address’s warm-up stage |
| source-ip-max-smtp-out | unlimited | few connections for a cold address |
| enable-tq-record-for-proxy-failure | false | true and the tq type in records |
<domain *> enable-source-ip-limits-on-sending-ip true enable-tq-record-for-proxy-failure true source-ip-max-msg-rate 198.51.100.0/24 200/h source-ip-max-smtp-out 198.51.100.0/24 2 </domain>
pmta show settings gmail.com/vmta1 | grep '^enable-source-ip-limits-on-sending-ip ' systemctl status pmta | grep Active