質問です。
Postfix の smtpd_tls_wrappermode の意味をご存知でしょうか?

ドキュメント(後述)を読むと、ポート 465 による SMTPS と smtpd_tls_wrappermode は
関係ないように読めるのですが、違うのでしょうか?

やりたいこと

Postfix でポート 465 を使った SMTPS を設定したい。

RFC8414 でいう「submission」です(STARTTLS ではないほうの SMTPS です)
https://tools.ietf.org/html/rfc8314

結局 STARTTLS による SMTPS も、submission による SMTPS もできたのですが、
smtpd_tls_wrappermode の意味が分からないのです。

わかっていること

つまり「smtpd_tls_wrappermode は Outlook 専用の設定である」と理解しています。

以下の文書を読みました。
http://www.postfix.org/TLS_README.html
http://www.postfix.org/postconf.5.html#smtpd_tls_wrappermode

TLS_README にはこう書いてあります。

TLS is sometimes used in the non-standard "wrapper" mode where a server always uses TLS,
instead of announcing STARTTLS support and waiting for remote SMTP clients to request TLS service.
Some clients, namely Outlook [Express] prefer the "wrapper" mode.
This is true for OE (Win32 < 5.0 and Win32 >=5.0 when run on a port<>25 and OE (5.01 Mac on all ports).

postconf.5 にはこう書いてあります。

smtpd_tls_wrappermode (default: no)
Run the Postfix SMTP server in the non-standard "wrapper" mode, instead of using the STARTTLS command.
If you want to support this service, enable a special port in master.cf,
and specify "-o smtpd_tls_wrappermode=yes" on the SMTP server's command line.
Port 465 (smtps) was once chosen for this purpose.

環境

クライアント

% uname -rsm
Linux 4.17.3-1-ARCH x86_64

・msmtp 1.6.7

・~/.msmtprc の内容

defaults
logfile         ~/.msmtp.log
account         test
host            192.168.1.24
port            25
from            miwa@example.jp
user            miwa@example.jp
password        password
account default : test

SMTP サーバー

# uname -rsm
Linux 3.10.0-862.3.2.el7.x86_64 x86_64

・Postfix 2.10.1

・/etc/postfix/master.cf の内容

smtp      inet  n       -       n       -       -       smtpd  -v
smtps     inet  n       -       n       -       -       smtpd  -v
  -o smtpd_tls_wrappermode=yes

・postconf -n の内容

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
home_mailbox = Maildir/
html_directory = no
inet_interfaces = 192.168.1.24
inet_protocols = all
mail_owner = postfix
mailbox_size_limit = 409600000000
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 5120000000
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydomain = example.jp
myhostname = smtp.example.jp
myorigin = $mydomain
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtpd_recipient_restrictions = permit_sasl_authenticated, reject
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_sasl_security_options = noanonymous
smtpd_tls_cert_file = /etc/ssl/example.jp/server.crt
smtpd_tls_key_file = /etc/ssl/example.jp/private/server.key.no
smtpd_tls_loglevel = 3
smtpd_tls_security_level = may
unknown_local_recipient_reject_code = 550

ためしたこと

submission(ポート 465 の SMTPS)をやりたい。

master.cf の -o smtpd_tls_wrappermode=yes をコメントアウトした場合。エラーになる。

% echo `date` | msmtp --account=test --auth=plain  miwa@example.jp --tls=on --tls-starttls=off --tls-certcheck=off --port=465
msmtp: TLS handshake failed: An unexpected TLS packet was received.
msmtp: could not send mail (account test from /home/miwa/.msmtprc)

master.cf の -o smtpd_tls_wrappermode=yes をコメントを外した場合。メール送信できる。

% echo `date` | msmtp --account=test --auth=plain  miwa@example.jp --tls=on --tls-starttls=off --tls-certcheck=off --port=465

宛先にメール受信できることを確認した。
パケットキャプチャして、TCP 3wayハンドシェイクのあとに TLS ハンドシェイクしたことを確認した。

わからないこと

「the non-standard "wrapper" mode」と言っている「標準」とは RFC のことでしょうか?また、「ラッパー」とはなんでしょうか?

smtpd_tls_wrappermode は Outlook 専用の設定である、と理解したのですが、じつは submission(ポート 465 での SMTPS)をするときは必須なのでしょうか?