The mechanism is simple: a declared address is replaced by one or several others, listed separated by commas. A message that arrives at example@yourdomain.com goes to all the named addresses.
Its place in the chain is named precisely. Expansion happens after the selection list is applied and the sending stream is chosen, but before the message is queued into that stream. The same applies to messages assigned a stream by a source default or a header.
An unobvious consequence follows: the stream is chosen by the original recipient, while the message leaves addressed to others. If the stream is chosen by a rule on the recipient domain, all expanded addresses will go out through the stream chosen for the original domain.
The short form is just the local part. Then forwarding triggers for addresses with that local part in any of the node’s local names. Matching by domain or by pattern is not supported — only an exact match.
The second half is multiplication. One address in can become three out, and this is not visible anywhere except in the forwarding declaration. Volume, rate and limits are counted by the expanded addresses.
The mechanism would come in handy where role addresses of several domains should converge into one mailbox. Now dmarc@, postmaster@ and abuse@ are accepted by a pattern rule and go to the bounce processor: what is recognized becomes an accounting record, the rest is discarded — they do not end up in a mailbox.
# declaring the node's names, reception and the forwarding itself host-name yourdomain.com relay-address user@example.com <aliases> alias example@yourdomain.com support@example.net,sales@example.net alias jdoe someone@example.com </aliases>
what people get wrong and how it ends2 mistakes▶
§ 13.9
§ 13.9
1 relation
grep -n -A5 '^<aliases>\|^alias ' /etc/pmta/config pmta show queues --maxitems=20
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.◇Two inbound report processors and what to do with themBounces by message and complaints are parsed by two identically structured blocks; each has its own address list and its own pair of decisions about the message’s fate.◇Address lists — named and unnamedA list of addresses, domains, patterns or hashes; a named one is attached by directives such as suppression, an unnamed one lives inside an inbound mail processor.