The submission library offers two connection functions: one connects to the named server and port without any login, the other passes a name and password. The port is the ordinary mail one — the manual directly recommends 25 as the default.
Hence the practical picture. A node’s submission surface is reachable from everywhere its listener is reachable, and the only thing that distinguishes a logged-in sender from one that has not logged in is how the source is configured. A client can always try without a password: whether login is required is decided by the node’s configuration, not by the client.
For a fleet this means that submission rights are a network boundary, not a local one. A source that allows submission allows it from everywhere its address range reaches.
This has to be checked from outside, not from inside the node: from inside everything always looks right.
A connection from another address that has not logged in gets no relaying permission: the general 0/0 block does not have it. Only the addresses listed by the report-receiving rules will be accepted from it — complaints, bounces and role addresses.
# the submission listener listens on the whole network, the login grants the right to hand over mail smtp-listener 0/0:2525 <smtp-user pmtauser> password s3cret source {pmta-auth}</smtp-user>
what people get wrong and how it ends2 mistakes▶
§ 7.5.4
§ 7.5.4
3 relations
What the submission bindings needA connection with a password is one of the functions of the same submission library. § 7.1How the node selects a source and combines its settingsWhat a remote sender is allowed to do is decided by the source block it falls under. inference
C submission APIA related mechanism: they work together. § 7.5.4
nc -vz <node-address> 2525 grep -n 'smtp-listener\|always-allow-relaying\|require-auth' /etc/pmta/config /etc/pmta/virtualhost.txt
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.◇Headers the sender uses to control deliverySix control headers let the submitting side choose a stream, tag a message with a job, set signing options and the key, the envelope identifier and the schedule; each is allowed separately and per source.◇The load balancer header at the entranceThe node reads the PROXY header at the start of an incoming connection and treats the address from it as the source; this works for both kinds of entry point.