我正试图从谷歌发送电子邮件,但还没有成功。我通过谷歌搜索找到了我发现的一切,但它仍然无效。
My Mail.php
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 587),
'from' => [
'address' => env('MAIL_FROM_ADDRESS', 'myemail@gmail.com'),
'name' => env('MAIL_FROM_NAME', 'blablabla'),
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
我的.env:
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=myemail@gmail.com
MAIL_PASSWORD=mypassword
MAIL_ENCRYPTION=tls
我还在gmail设置上允许“安全性较低的应用”。
Mail-Code工作得很完美,我之前在mailtrap.io上试过了。但如果我将其更改为谷歌,我只会收到错误。
这是我发送邮件的代码:
\Mail::to('hardcodededmail@gmail.com')->send(new NewThread($thread));
那就是错误:
(1/1)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 :(得分:2)
试试这个,它对我有用:
MAIL_PORT=465
MAIL_ENCRYPTION="ssl"
如果您使用的是2FA,请确保生成应用密码。
答案 1 :(得分:0)
然后不要使用TLS或SSL。
MAIL_ENCRYPTION=tls
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
将两者更改为:
MAIL_ENCRYPTION=
'encryption' => env('MAIL_ENCRYPTION', ''),
然后运行:
php artisan config:clear
这应该做的工作