一周前,我用PHPMailer测试了WAMP中的一些组件,一切都正常工作。第二天它就停止工作了。WAMP中的配置没有改变。使用SMTPDebug时,当我试图发送电子邮件时,这是以下错误:
连接失败。错误#2: stream_socket_enable_crypto():SSL操作失败,代码1。OpenSSL错误消息:错误:14090086:SSL C:...\SMTP.php验证失败行404
我使用x86版本的WAMP和XAMPP进行了其他测试(我目前使用的是x64 WAMP),但没有成功,我也得到了相同的错误。
所有测试都是在启用gmail “允许安全性较低的应用程序”的情况下执行的。
在对文档进行快速搜索之后,我发现问题是由于对SSL证书的验证造成的。作为解决办法,我可以使用以下代码跳过此检查:
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);但正如已经说过的,这是一个解决办法。我想知道问题的根源在哪里,我不明白为什么它停止工作。我已经尝试过替换WAMP / XAMPP文件夹中的证书,但没有成功。也做了大量的研究,但没有结果。知道我如何解决证书验证问题而不需要任何解决办法吗?
发布于 2017-11-03 10:27:07
可能重复:crypto(): SSL operation failed with code 1
有很多的倾诉,使这个错误出现。但更多的情况是,您的系统配置没有正确设置。要正确地执行以下操作: 1-检查是否有用于OPENSSL的cacert.pem文件,如果没有,请根据php版本从cacert.pem下载适当的版本,并将php.ini文件配置为"2-“。
2-如果您有这个文件,那么您必须在您的php.ini文件中查找并查看它是否已在其中设置。这样做:查找行
openssl.cafile ="example address..\cacert.pem"如果您找到具有特定地址的行,请在该地址中查找cacert.pem文件,如果您找到它,则所有这些都是用cacert.pem文件完成的。否则,你应该使用正确的地址。
希望这能帮到你..。祝你好运..!
https://stackoverflow.com/questions/47035679
复制相似问题