【问题标题】:Periodic Office 365 SMTP Send Error Due to TLS 1.1/1.0由于 TLS 1.1/1.0 导致的定期 Office 365 SMTP 发送错误
【发布时间】:2022-01-18 00:29:29
【问题描述】:

我们有 PHP Web 应用程序,它通过经过身份验证的 smtp.office365.com 发送 SMTP 电子邮件。这已经工作了至少几年。

我们使用的是 PHP Mailer 5.2。我们将 crypto_method 强制为 STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT。

这是奇怪的事情。大约 75% 的时间它工作正常。其余时间报告 SMTP ERROR: Password command failed: 421 4.7.66 不支持 TLS 1.0 和 1.1。请升级/更新您的客户端以支持 TLS 1.2。

注册的流套接字传输是 tcp、udp、unix、udg、ssl、sslv3、tls、tlsv1.0、tlsv1.1、tlsv1.2

它怎么可能在大部分时间都有效。如果这真的是一个 TLS 问题,我希望它 100% 的时间都会失败。

【问题讨论】:

    标签: php smtp office365


    【解决方案1】:

    我发现升级我的服务器运行的 PHP 版本有助于解决这个问题。我之前运行的是版本 5.*,尽管试图强制脚本使用更新版本的 TLS,但它仍然运行到 MS 已经到位的减速带。将我的 PHP 版本升级到 7.4 版解决了这个问题,此后我没有看到任何被拒绝的电子邮件。

    【讨论】:

      【解决方案2】:

      在 Java 应用程序上也是如此。

      我必须在 SMTP 属性中强制使用 TLS v1.2。 就我而言:

      config.put("mail.smtp.ssl.protocols", "TLSv1.2");
      

      希望你能找到答案。

      【讨论】:

        【解决方案3】:

        来自微软:

        将引入新的提交错误减速带

        我们充分意识到许多客户不会注意到消息中心的多个帖子和博客帖子,并且不知道仍在使用 TLS1.0 提交消息的客户端或设备。考虑到这一点,从 2021 年 9 月开始,我们将拒绝一小部分使用 TLS1.0 进行 SMTP AUTH 的连接。客户端应与提交期间可能发生的任何其他临时错误一样重试。随着时间的推移,我们将增加被拒绝连接的百分比,从而导致越来越多的客户应该注意到发送延迟。错误将是:

        421 4.7.66 不支持 TLS 1.0 和 1.1。请升级/更新您的客户端以支持 TLS 1.2。访问 https://aka.ms/smtp_auth_tls。

        我们打算在准备好进行更改以禁用 TLS1.0 和 TLS1.1 以用于常规端点的 SMTP AUTH 时发布最终公告。

        可在此处找到其他文档:为使用 SMTP AUTH 的旧 TLS 客户端选择加入 Exchange Online 端点

        Exchange 传输团队

        【讨论】:

        • 我们没有看到那些博客条目,我们花了几个小时与微软通电话,但他们从未告诉我们这个“断开几个连接”的计划。他们只是告诉我们这是一个 TLS 问题。这就是我的错误——我应该来这里。谢谢。
        猜你喜欢
        • 2022-11-30
        • 1970-01-01
        • 2012-12-01
        • 1970-01-01
        • 2015-04-06
        • 2016-06-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多