根据STARTTLS 规范第 5 节:
公开引用的 SMTP 服务器不得要求使用
STARTTLS 扩展来在本地传递邮件。此规则
可防止 STARTTLS 扩展破坏 Internet 的 SMTP 基础结构的互操作性。公开引用的 SMTP 服务器是在
Internet 邮件地址右侧的域名的 MX 记录(如果 MX 记录不存在,则为 A 记录)中列出的 Internet 主机的端口 25 上运行的 SMTP 服务器.
然而,这个规范是在 1999 年编写的,考虑到它是 2014 年,我希望大多数 SMTP 客户端、服务器和中继都具有某种 STARTTLS 实现。
如果我需要 STARTTLS 接收消息,我预计会丢失多少电子邮件?
是的,这仍然是一个坏主意。
三个原因:
虽然您引用的 RFC ( RFC 2487 ) 实际上已被当前标准RFC 3207过时,但当前标准保留了您在问题中引用的 MUST NOT 措辞。
SMTP 客户端不需要实现 STARTTLS。不这样做是完全可以接受的。虽然 STARTTLS 变得越来越普遍,但它绝对不是通用的。
由于原因 1 和 2,如果您在所有传入连接上都需要 STARTTLS,您将丢失邮件。
然而:
您的服务器 - 您的规则。如果你想以任何理由,甚至没有理由任意拒绝任何邮件——那是你的权利和特权。(但这并不意味着它一定是个好主意)
旁注:
即使您需要相互 STARTTLS 身份验证,您也不会通过要求 STARTTLS 来防止垃圾邮件。垃圾邮件发送者也可以获得证书 - 或创建自签名证书。拒绝自签名客户端证书也将导致丢失合法邮件。
STARTTLS 是点对点加密。连接系统仍然可以读取电子邮件的内容。如果您想要真正的隐私,则需要端到端的东西,例如 OpenPGP 或 S/MIME。
也就是说,STARTTLS 确实消除了一种可能的拦截或 MITM 途径,因此在可行时使用它仍然是一个好主意,即当另一方也支持它时。
谷歌维护着关于其加密邮件的百分比的公开统计数据,包括入站和出站。此信息对您确定是否值得实施非常有用:
http://www.google.com/transparencyreport/saferemail/