<source>
The directive names one or more address lists, comma-separated. Two addresses are checked: MAIL FROM from the protocol and the sender address from the message itself — from the Sender header, or from From if there is none.
A message that fails the check is rejected with the reply 550 5.7.1 Forbidden Sender Address. The refusal is synchronous: the sender learns about it immediately, and the message does not get into the queue.
Without the directive, all senders are allowed — that is its default.
The lists are declared with <address-list> blocks and filled with addresses, local parts, domains and patterns.
The other edge: without the directive everything is allowed. That is, a logged-in sender can by default sign with any address — including another domain on the same node.
Domain separation in the Hub rests not on this but on the choice of sending address: each login has its own named source with its own stream, and mail leaves from the assigned address regardless of what the message says. But the name in the message is not checked by anything.
What to set. The value is list names; what you choose is the degree of strictness:
| Value | When |
|---|---|
| do not write it (default) | the senders are trusted, and the submitting platform controls the name in the message |
| a list of domains | several senders use the node, and each must sign only with its own |
| a list of addresses | submission comes from fixed addresses and changes rarely |
A list of domains is more convenient: addresses within a domain change, domains do not.
# the list is declared separately, the source refers to it <address-list sender1> domain shop.example.com </address-list> <source {shop-example-com-auth}> allowed-sender-lists sender1</source>
what people get wrong and how it ends3 mistakes▶
§ 3.3.7.43
§ 3.3.7.43
our experience
2 relations
grep -n 'allowed-sender-lists' -A3 /etc/pmta/config /etc/pmta/virtualhost.txt grep -n 'Forbidden Sender' /var/log/pmta/pmta.log | tail -5
3 articles
◇How the node selects a source and combines its settingsA connection falls under all source blocks whose addresses cover it, and they act merged — the narrow one overrides the wide one; named blocks are attached only by direct reference.◇Submission logins, plain-text passwords and per-user settingsA sender logs in with one of three methods; each login is a configuration block with a plain-text password, and that login’s named source overrides what its address would have given.◇A license for a fleet, not for a serverThe license is not bound to a server: it is installed on as many machines as the instance limit allows, and the nodes send volume statistics to the vendor every hour.