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