A)最初,服务器到服务器的 smtp 连接始终在端口 25 上以纯文本形式出现。如果源服务器和目标服务器都支持TLS 扩展,那么通常使用STARTTLS命令将纯文本连接转换为加密连接
B)要检查邮件是否通过加密连接传输,请在传输"Received"
后读取结果消息中的 -Headers。
它们看起来像这样:
Received: from X.example.com (X.example.com [y.y.y.y])
by z.example.net (Postfix) with ESMTPS id ......
重要的部分是ESMTPS位。最后一个S
意思是“安全”。如果它只是说“ESMTP”或“SMTP”而不是“ESMTPS”,则传输未加密。
C)如果目标服务器不支持 TLS,除了像 PGP 之类的端到端加密(如 Álvaro G. Vicario 所建议的那样)之外,您无能为力。一些服务器(如postfix)提供了配置选项,以防止在目标无法执行 TLS 时完全发送消息。
如果服务器支持 STARTTLS,您可以使用 telnet 手动测试:
telnet gmail-smtp-in.l.google.com 25
Trying 173.194.70.27...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP 4si1878861eee.197 - gsmtp
EHLO mail.example.com <--- you have to type that
250-mx.google.com at your service
250-SIZE 35882577
250-8BITMIME
250-STARTTLS <----- GMAIL supports TLS
250 ENHANCEDSTATUSCODES