<source>set by the Hub
The line allows the node to advertise the STARTTLS extension to clients submitting through this source. The default is false, and this matters: without the line the node does not even mention encryption, and submission goes in plain text, passwords included.
It works only together with a certificate. smtp-server-tls-certificate at the node level is what the node will present; without it there is nothing to present.
This is a permission, not a requirement. The client may not use it. Two neighboring lines can insist: require-starttls — encryption before any commands, and require-starttls-before-auth — encryption at least before the password.
It has to go into the right source. The permission is granted to the block the submitter’s address falls under; in a narrow block it overrides the value of the wide one.
The value is boolean, and the question is in which source:
| Where | Applies to | Why |
|---|---|---|
| <source> 0/0 | all submitters | STARTTLS is advertised before authentication — this is the only place that works |
| a source by login | nobody | by the time of advertising, the login has not been given yet |
| a narrow subnet | that subnet | if submission comes only from there |
And a certificate is mandatory at the node level: without it the permission gives nothing.
# this is how the Hub writes the base configuration — in the general source <source 0/0> allow-starttls true allow-unencrypted-plain-auth yes </source>
what people get wrong and how it ends2 mistakes▶
our-experience
our-experience
2 relations
allow-unencrypted-plain-auth<source>The encryption permission is what makes this setting meaningful: without it there are simply no encrypted connections. § 3.3.7.13log-tls<source>There is nothing to log until clients of this source are allowed to start encryption. § 3.3.7.33immediate-tls<smtp-listener>Another way to encrypt submission: there encryption begins at the client’s command, here from the first byte. § 3.3.17.2
openssl s_client -starttls smtp -connect localhost:25 -quiet
3 articles
◇Submission over HTTPS on its own listener, modeled on SparkPostA separate entry point: its own listener with a certificate, its own keys and a reserved source name through which the usual submission settings apply to such mail.◇The receiver declares an encryption requirement on its websiteThe node fetches the recipient domain’s policy over HTTPS and, if it is in enforce mode, delivers only when the MX matches, the connection is encrypted and the certificate is verified.◇The receiver declares an encryption requirement in its DNS zoneThe node looks at the recipient domain’s DANE records and, if STARTTLS is required, sends only over an encrypted channel with a certificate verified by fingerprint.