在我的 php 编码中,我有以下使用 SWIFT MAILER 类的行
if(!stream_socket_enable_crypto($this->smtp_conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) {
return false;
}
然而很少(并非总是)我会得到以下 php 错误
stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
我不确定问题出在哪里,或者我应该忽略它,因为这种情况偶尔才会发生
答案1
我遇到了同样的错误。
stream_socket_enable_crypto():SSL 操作失败,代码为 1。OpenSSL 错误消息:错误:1408F10B:SSL 例程:SSL3_GET_RECORD:版本号错误
这是由于不正确的 SMTP 设置导致的。我曾:
$transport = Swift_SmtpTransport::newInstance('mail.myserver.com', 465, 'tls');
当我把它改正为
$transport = Swift_SmtpTransport::newInstance('mail.myserver.com', 465, 'ssl');
它工作正常。这是一个相当不直观的错误信息,但我最终还是做到了。
答案2
在 php.ini 中搜索行
; extension=php_openssl.dll
并删除;因此变成:
extension=php_openssl.dll
然后保存并重新启动并享受。
答案3
通常routines:SSL3_GET_RECORD:wrong version number
是根本不使用 SSL/TLS 的服务器代码。
因此,请务必先检查这一点。