Chapter 9 adds three facts to the description of a pool, and the middle one settles a question that had to be left open in several places in the analysis of chapter 3.
Distribution is ordinary rotation over the listed members (shares are set separately, with the member line).
Inheritance is stated directly. A recipient block written inside a pool goes to each member; if a member has its own block for the same recipient domain, that one wins. The more specific overrides the more general — one of the few cases where the manual states the resolution order instead of showing it by example.
The namespace is shared — and this follows from a design choice: a pool and a sending address are selected by the same headers, directives and calls. A pool with the name of an existing sending address would be unresolvable, and the engine rejects such a definition rather than parsing it.
The mechanism has no values of its own — there are three rules and the question of where to keep what is shared by a group:
| What | Node level | Pool | Sending address |
|---|---|---|---|
| a single receiver rule for the whole fleet | yes | — | — |
| warm-up wave rules | — | yes | repeated for each |
| address, name, signing key | — | — | yes |
The rule is simple: a setting lives at the level where it is decided. Moved lower, it gets repeated and diverges; moved higher, it affects those it should not.
# a receiver rule set once for the whole group <virtual-mta-pool warmup-wave-3> <domain yahoo.com> max-msg-rate 10/h </domain> virtual-mta mta1 virtual-mta mta2 </virtual-mta-pool>
what people get wrong and how it ends2 mistakes▶
§ 9.3
§ 3.3.13
3 relations
pmta show queues yahoo.com/mta1
3 articles
◇Four ways to say “slower”Messages, data volume, connection rate and number of connections — each has its own limit, and each has a “per source address” variant and a backoff mode twin.◇A queue is a receiving server together with a sending addressThe engine groups messages by the “recipient domain plus sending address” pair: one domain from two addresses is two independent queues with their own counters, connections and mode.◇Four value types the whole config is written inBoolean, domain pattern, regular expression and time interval — defined once in § 3.2 and then used by all directives.