<smtp-listener>
There are two different ways to encrypt submission. STARTTLS: the connection opens as plain, the client sees the greeting, sends STARTTLS, and only then does encryption begin. SMTPS — what this line enables: encryption begins from the first byte, before the greeting.
The default is false. The line is bound to a listener: it applies to connections that arrived at its address and port.
Historically SMTPS lives on port 465, while STARTTLS is on 25 and 587. That is why it is enabled on a separate listener rather than the main one: a client expecting a plain greeting will simply hang on an encrypted port.
What does not change — the certificate, versions and ciphers come from the same place as for STARTTLS: the listener or the node.
The value is boolean, but the decision is about a separate listener:
| What | How |
|---|---|
| regular submission | STARTTLS on 25 or 587, this line is not needed |
| the platform can do only SMTPS | a separate listener on 465, the line set to true |
| enabling it on an existing listener | do not: submission will stop entirely |
The port is not part of this line but part of the listener’s name. The line only changes how encryption begins.
# a separate listener for SMTPS — the main one is left untouched smtp-listener 0.0.0.0:25 <smtp-listener 0.0.0.0:465> immediate-tls true</smtp-listener>
what people get wrong and how it ends2 mistakes▶
our experience
§ 3.3.17.2
2 relations
openssl s_client -connect localhost:465 -quiet
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.