STARTTLS sendmail 在 SMTP 上握手失败并重试

STARTTLS sendmail 在 SMTP 上握手失败并重试

我想妥善处理 sendmail STARTTLS 握手失败。对于外发邮件,如果发生失败,最好立即重试而不使用 STARTTLS。对于入站邮件,理想情况下,导致握手失败的站点将被列入白名单,以便将来不使用 STARTTLS,尽管我意识到这可能不切实际。

作为此专业环境中的替代方案,默认不使用 STARTTLS,并仅指定将为入站和/或出站邮件提供 STARTTLS 的特定站点/域的方法目前可能就足够了。欢迎提出任何建议。谢谢。

答案1

很抱歉给大家带来坏消息,但据我所知,sendmail 不提供这种级别的粒度。对于出站邮件,默认情况下这意味着一个简单的三步机会格式:

  1. 检查远程下游 MTA 是否公布支持STARTTLS
  2. 如果远端确实宣布支持,则继续协商STARTTLS连接。
  3. 如果远端确实不是宣传对 的支持STARTTLS,以明文形式继续 SMTP 通信。

不幸的是,没有“后退”逻辑——如果远程方宣传 TLS 支持,sendmail 会假定它可以/应该使用它。因此,如果在步骤 2 中出现问题,则消息会排队,sendmail 稍后会再次尝试。

如果你想禁用该 STARTTLS 逻辑,你需要利用try_tls规则集(已描述这里)。

相关内容