stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
如题, 自己搭建的邮件服务器, 证书采用的是 Lets‘s Encrypt, 确定没有问题. PHP Openssl Extension 已装, 在命令行里跑 echo QUIT | openssl s_client -crlf -starttls smtp -CAfile /etc/ssl/certs/ca-certificates.crt -connect smtp.example.com:587
返回结果正常.
于是简单的读了一下代码, 发现发送邮件使用了 Laravel 提供的 Mail 模块. Laravel Mail 的配置文件位于 config/mail.php
, 在 config/mail.php
尾部添加下面这段代码:
'stream' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
保存, 再次发送测试邮件, 发送成功.
发表回复