StreamBuffer.php 第 95 行中的 ErrorException:在 laravel 5 中
Posted
技术标签:
【中文标题】StreamBuffer.php 第 95 行中的 ErrorException:在 laravel 5 中【英文标题】:ErrorException in StreamBuffer.php line 95: in laravel 5 【发布时间】:2015-07-05 15:18:58 【问题描述】:我将我的应用程序从Laravel 4
转移到Laravel 5
,在发送电子邮件时,特别是在(重置密码).. 我收到了这个错误
stream_socket_enable_crypto():SSL 操作失败,代码为 1。OpenSSL
错误信息:error:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败
但在 laravel 4 中,它可以工作。
【问题讨论】:
似乎默认配置sendmail
不适合您。您可能想切换到 smtp 邮件。检查谷歌的 SMTP 服务器设置:support.google.com/a/answer/176600?hl=en
是的,gmail 会有自己的 ssl 证书。所以你不会偶然发现这个错误。
mysteryos,请写下您的解决方案作为答案。这样人们就可以投票了。否则,这个问题看起来没有解决方案。
phpMailer - SSL3_GET_SERVER_CERTIFICATE:certificate verify failed的可能重复
OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed Failed to enable crypto的可能重复
【参考方案1】:
这是您的 SSL 证书有误。您正在尝试使用没有正确证书的 SSL 连接(加密的安全连接)。
那是因为您从 localhost 进行连接,这不安全,并且被连接阻止。您可以通过将 localhost 连接更改为基于 SSL 的连接来避免这种情况。
还要检查并在 'config/mail.php' 这个文件中添加以下代码。
'stream' => ['ssl'=>
['allow_self_signed'=>true, 'verify_peer'=>false, 'verify_peer_name'=>false]
],
【讨论】:
【参考方案2】:添加
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
));
之前
mail->send()
替换
require "mailer/class.phpmailer.php";
与
require "mailer/PHPMailerAutoload.php";
【讨论】:
【参考方案3】:转到位置 \vendor\swiftmailer\lib\classes\Swift\Transport\StreamBuffer.php en la linea 259。评论以下内容:
//$options = array();
并添加。 $options['ssl'] = array('verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true);
:D!
【讨论】:
【参考方案4】:你可以使用谷歌应用密码,对我来说,用应用密码更改gmail密码后它就可以了,你可以通过访问我的帐户>登录>
【讨论】:
【参考方案5】:我遇到了类似的问题,所以我设置了
MAIL_ENCRYPTION=
在 .env 文件中。
对我来说效果很好。
【讨论】:
这是否意味着电子邮件将在没有任何加密的情况下发送?【参考方案6】:如果您基本上使用 Windows 进行开发,这是常见的问题。
将您的邮件驱动程序从“smtp”更改为“邮件”会有所帮助。
【讨论】:
【参考方案7】:此错误表示 SSL 证书验证失败。 一个快速的解决方法是在条件之后将这些行添加到 StreamBuffer.php:
if (!empty($this->_params['sourceIp']))
$options['ssl']['verify_peer'] = FALSE;
$options['ssl']['verify_peer_name'] = FALSE;
【讨论】:
这只是一个快速修复,因为它有效地禁用了正在连接的服务器的身份验证。任何其他系统都可以拦截流量。 PHP 中的 Curl 通常默认使用一个空的 CA 存储来进行证书验证,因此这里可能会出现同样的问题。查看 openssl_get_cert_locations() 是否显示任何线索并确保您的 CA 存储是最新的。以上是关于StreamBuffer.php 第 95 行中的 ErrorException:在 laravel 5 中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 jmeter 聚合报告命令行中打印 95 和 99 百分位数?
第95篇 笔记-solidity中的继承(Inheritance)
HtmlServiceProvider.php 第 36 行中的 FatalErrorException:laravel
从 UITableView 中删除行会更改存储在其他行中的信息
Inflector.php 第 265 行中的 FatalErrorException:语法错误,意外 ':',期待 ';'要么 ''