3

具体的には、次のメッセージで失敗します。

[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 のトラブルシューティング 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)

SMTPDebug をオン (レベル 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/証明書の構成に変更はありません。

トラブルシューティングの次のステップに関する提案はありますか?

編集:この質問は以前に解決された可能性があることが示唆されました SSL3_GET_SERVER_CERTIFICATE ..しかし、それは別のエラーメッセージです(そして、提案されたようにsmtpoptionsをオーバーライドしようとしましたが、効果はありませんでした)。

4

1 に答える 1

0

解決しました。PHPMailer 5.2.23 にアップグレードすると、エラー メッセージが表示されなくなりました。Synchro のおかげです (卑劣な口調にもかかわらず… 笑)。

于 2017-05-01T00:38:00.983 に答える