critical
A sending address in PowerMTA is not a line with an IP but a named block of settings. It collects what belongs to the address as such: which IP the message leaves from, what name the node introduces itself with to the receiving server, which key it signs with, which proxy it goes through and how fast it sends overall.
Fifteen directives, and most are familiar. These are the same names as at the node level in part one of the manual, only narrowed down to one address: smtp-source-host, smtp-proxy-source-host, host-name, domain-key, include-headers-from, use-proxy, proxy-protocol, proxy-include-tlv. Written here, they act only on messages that left from this address.
Three directives exist only here. max-smtp-msg-rate and max-smtp-data-volume-rate limit the address as a whole, not each queue separately — there is no other way to set a ceiling per address. cold-virtual-mta names the partner address that early traffic is diverted to.
About the partner the manual states an important negative: the cold address inherits nothing from the one that redirects to it. Either it is configured from scratch in full, or it has no settings at all.
Receiver blocks can sit inside an address. Then the receiver policy and the address settings add up rather than replace each other: the address gets both an overall ceiling and one for each receiver. How exactly nesting is resolved is on the domain-matching page.
The address does nothing by itself. It applies only when a message has been assigned to it — and the choice is made by a separate ladder of six methods (vmta-selection-precedence).
The Hub writes the address blocks to /etc/pmta/virtualhost.txt, and the sending addresses that go through proxies to a separate file, /etc/pmta/proxy.txt; the main file includes both with include lines. The format is shared with Protosender — both read the addresses file.
The Hub does not create cold partners: warm-up is managed by its own scheduler, which can stop on the spam rate and swap in an address from the reserve pool. The engine’s early-traffic mechanism knows nothing about that.
The mechanism has no values of its own — the directives inside the block set them. What goes into the block depends on the address’s role:
| What kind of address | What the block must have |
|---|---|
| production mailing address | source, node name, signing key, streams, queue pace |
| address in warm-up | the same plus a lowered pace; the scheduler holds the quota |
| reserve address | a full copy of the production one: nothing is inherited from the address it replaces |
| cold partner | everything from scratch — it inherits nothing |
The block name is the name all other parts of the configuration will see. The address is selected by it through a header, a pattern rule and a source default; it is also printed in accounting and in node summaries. Changing the name of a working address means changing it in all those places at once.
# sending address: address properties outside, receiver policy inside <virtual-mta mta-news-1> smtp-source-host 1.2.3.4 news1.example.com domain-key sel1,example.com,/etc/pmta/keys/sel1.pem max-smtp-msg-rate 3000/h <domain *> max-msg-rate 500/h backoff-max-msg-rate 1/h </domain> </virtual-mta>
what people get wrong and how it ends3 mistakes▶
§ 3.3.12.4
§ 3.3.12
§ 3.3.12
3 relations
A group of sending addresses with traffic sharesA pool is a group of sending addresses, and it shares their namespace. § 3.3.13cold-virtual-mta<virtual-mta>One of the sending address settings: whom it hands the first messages of the day to. § 3.3.12.4max-smtp-msg-rate<virtual-mta>One of the settings that make up a sending address. § 3.3.12.2max-smtp-data-volume-rate<virtual-mta>One of the settings that make up a sending address. § 3.3.12.3max-smtp-out<virtual-mta>One of the settings that make up a sending address. § 3.3.12.12host-name<virtual-mta>One of the settings that make up a sending identity. § 3.3.12.5
pmta show vmta-settings mta-news-1 pmta show vmtas
3 articles
◇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.◇Warm-up built into the engineA warmed-up address hands the first N messages of the day for each receiver to its cold partner; the partner sends them itself and builds history.◇A group of sending addresses with traffic sharesA named group of sending addresses; without shares messages are distributed in rotation, with shares in the given proportion, in steps of a tenth of a percent.