【问题标题】:stream_socket_client() failed since PHP 5.6.8 on XAMPP 5.6.8 on OS X自 OS X 上 XAMPP 5.6.8 上的 PHP 5.6.8 以来,stream_socket_client() 失败
【发布时间】:2015-09-19 17:30:15
【问题描述】:

我刚刚将我的 XAMPP 开发平台从 1.7.3 更新到 OS X 的最新版本 5.6.8。这将 PHP 从 5.3.1 更新到 5.6.8。它破坏了通过 SSL 连接(不是 TLS)上的 SMTP 向我的托管站点邮件服务器发送访问者查询的 PHPMailer。问题是我的托管站点仅使用自签名证书进行身份验证。这对较旧的 XAMPP 无效。但是对于最新的,PHPMailer 用于 SMTP 的函数stream_socket_client 会生成此错误:

SSL operation failed with code 1.
OpenSSL Error messages: error:14090086:
SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

这就是我所做的

  1. 修改 PHPMailer 以接受 SSL 上下文选项 PHP Mailer send 函数不接受 SSL 上下文选项,尽管内部 SMTP connect 函数有可选参数。我还取消了函数stream_socket_client 的错误消息。我使用这个选项:
$mail->SMTPOption = array( 'smtp' => array(
'verify_peer' => false, 
'verivy_peer_name' => false, 'allow_self_signed' => true) );

但这没有任何效果,OpenSSL 仍然会引发上述消息。

  1. 在 php.ini 中添加 openssl.cafile 和 openssl.capath 属性。还是不行。

  2. PHPMailer Debug 输出只有这个内容

 Connection: opening to ssl://wates.idwebhost.com:465, t=300, 
 opt=array ( 'smtp' => array ( 'verify_peer' => false, 
 'verivy_peer_name' => false, 'allow_self_signed' => true, ),)
 SMTP ERROR: Failed to connect to server: (0)
 SMTP connect() failed.

请指导我解决这个问题。

【问题讨论】:

    标签: php email ssl xampp phpmailer


    【解决方案1】:

    好的,显然我使用的是旧版本的 PHPMailer。更新到5.2.10版本后,问题解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-10
      • 2017-04-05
      • 2015-08-12
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      相关资源
      最近更新 更多