【问题标题】:PHPMailer fails after upgrade from PHP 5.5 to 7.1.4从 PHP 5.5 升级到 7.1.4 后 PHPMailer 失败
【发布时间】:2017-09-28 06:01:17
【问题描述】:

具体来说,我们会因为这条消息而失败:

[30-Apr-2017 14:05:18 UTC] PHP Warning:  stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure in /home/xxxxxxxx/public_html/phpmailer/PHPMailer-5.2.8/class.smtp.php on line 272

通过谷歌搜索,我们发现从 PHP 5.5 升级过程中出现类似错误的报告 - 但这些都源于 PHP 5.6 中引入的改进的证书验证。这似乎不是我们的问题。例如 - 在PHPMailer troubleshooting wiki 之后 - 我们能够使用 openSSL 连接到 smtp 服务器。

openssl s_client -starttls smtp -crlf -connect vps.ourserver.com:587
.
.
SSL handshake has read 5284 bytes and written 468 bytes
.
.
Verify return code: 0 (ok)

打开 SMTBDebug(级别 4)并没有真正显示出任何有用的信息:

2017-04-30 16:04:54     CLIENT -> SERVER: STARTTLS
2017-04-30 16:04:54     SMTP -> get_lines(): $data is ""
2017-04-30 16:04:54     SMTP -> get_lines(): $str is  "220 TLS go ahead
                                          "
2017-04-30 16:04:54     SERVER -> CLIENT: 220 TLS go ahead
2017-04-30 16:04:54     SMTP Error: Could not connect to SMTP host.
2017-04-30 16:04:54     CLIENT -> SERVER: QUIT

如前所述 - 此问题在 PHP 升级后立即开始。无需更改代码或 SSL/证书配置。

关于故障排除的后续步骤的建议?

编辑:有人建议这个问题可能是solved previously SSL3_GET_SERVER_CERTIFICATE.. 但这是一条不同的错误消息(我确实尝试按照建议覆盖 smtpoptions - 无效)。

【问题讨论】:

标签: ssl phpmailer php-7.1 phplist


【解决方案1】:

解决了。 升级到PHPMailer 5.2.23,错误信息消失了。感谢 Synchro(尽管语气很刺耳……哈哈)。

【讨论】:

    猜你喜欢
    • 2016-09-15
    • 2015-03-08
    • 1970-01-01
    • 2017-01-07
    • 2013-07-02
    • 1970-01-01
    • 2014-07-28
    • 2021-03-04
    • 1970-01-01
    相关资源
    最近更新 更多