问题：

启用TLS时，ESA为什么发出两次EHLO?

您可能会问，为什么ESA在与远程主机建立TLS连接时发出多个EHLO。  根据RFC3207 — 第4.2节：

“服务器必须放弃从客户端获取的任何知识，例如EHLO命令的参数，该参数不是从TLS协商本身获取的。在成功进行TLS协商后，客户端应发送EHLO命令作为第一个命令。”

因此，在TLS协商后，第二个EHLO是完全正常的行为。在建立TLS会话之前的任何操作都不能被视为TLS加密会话的一部分。响应在TLS握手后收到的EHLO命令而返回的SMTP服务扩展列表可能与TLS握手前返回的列表不同。以下是您在邮件日志中可能看到的日志条目示例（如果启用了TLS）：

Mon May 16 18:34:30 2005 Info: 5165207 Sent: 'EHLO mx4.example.com'

Mon May 16 18:34:30 2005 Info: 5165207 Rcvd: '250-eq-c601.example.com'

Mon May 16 18:34:30 2005 Info: 5165207 Rcvd: '250-8BITMIME'

Mon May 16 18:34:30 2005 Info: 5165207 Rcvd: '250-SIZE 10485760'

Mon May 16 18:34:30 2005 Info: 5165207 Rcvd: '250 STARTTLS'

Mon May 16 18:34:30 2005 Info: 5165207 Sent: 'STARTTLS'

Mon May 16 18:34:30 2005 Info: 5165207 Rcvd: '220 Go ahead with TLS'

Mon May 16 18:34:30 2005 Info: 5165207 Sent: 'EHLO mx4.example.com'

Mon May 16 18:34:30 2005 Info: 5165207 Rcvd: '250-eq-c601.example.com'

Mon May 16 18:34:30 2005 Info: 5165207 Rcvd: '250-8BITMIME'

Mon May 16 18:34:30 2005 Info: 5165207 Rcvd: '250 SIZE 10485760'

Mon May 16 18:34:30 2005 Info: 5165207 Sent: 'MAIL