我正在使用最新的php版本和laravel 5.4的xampp(windows)。这是我的.env设置
MAIL_DRIVER = smtp
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 587
MAIL_USERNAME = myemail@gmail.com
MAIL_PASSWORD = mypassword
MAIL_ENCRYPTION = tls
和控制器代码
use Mail;
Mail::send('mail.login-verificatio', $data, function($message) use($email_to)
{
$message->to($email_to, '')->subject
('Login Security Number');
$message->from('myemail@gmail.com','xxxxxxxxxxx');
});
但是我发现了以下错误
ErrorException
stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
感谢
答案 0 :(得分:0)
这意味着您的SSL配置不正确(或者根本没有SSL配置)。此错误不是来自 Laravel 它来自PHP本身。 PHP未验证您的SSL配置。
要解决此问题,请执行以下操作之一;
1)正确配置 SSL ,以便PHP验证
2)使用PHP mail()功能,默认情况下不需要 SSL 。您可以将其与Swiftmailer一起使用,也可以在此链接http://core.wp-a2z.org/oik_api/phpmailerismail/
中查看isMail
3)如果是出于测试目的,将.ENV
文件配置为记录电子邮件,而不是smtp
额外:我建议您使用https://mailtrap.io/进行测试,而不是使用gmail,这会给您带来很多不同的好处。
答案 1 :(得分:0)
请尝试遵循以下方法:
1)您可以在config / mail.php文件中使用以下代码。
'stream' => [
'ssl' => [
'allow_self_signed' => true,
'verify_peer' => false,
'verify_peer_name' => false,
],
],
2)尝试删除config / mail.php文件中的TLS。
'encryption' => env('MAIL_ENCRYPTION', ''), //'tls')