我想优雅地处理sendmail STARTTLS握手失败。 在外发邮件上,最好是在没有STARTTLS的情况下立即重试。 在入站邮件,理想情况下,引起握手失败的网站将被列入白名单,以便将来不使用STARTTLS,但我意识到这可能不切实际。
作为这种专用环境的替代方法,默认不使用STARTTLS的方法,只指定将为入站和/或出站邮件提供STARTTLS的特定站点/域可能就足够了。 任何build议感激。 谢谢。
对不起,坏消息是AFAIK,sendmail并没有提供这样的粒度。 对于出站邮件,默认情况下,这意味着一个简单的三步机会主义格式:
STARTTLS 。 STARTTLS连接。 STARTTLS ,请继续清除SMTP通信。 不幸的是,没有一个“回退”逻辑 – 如果远程方广告TLS支持,sendmail假定它可以/应该使用它。 因此,如果在步骤2中发生问题,消息队列和sendmail稍后再试。
如果你想禁用STARTTLS逻辑,你需要利用try_tls规则集( 在这里描述)。