2017-07-17 312 views
0

我正在尝试从Google发送电子邮件,但尚未完成。我通过谷歌搜索完成了所有工作,但仍无法运行。Laravel 5.4用Gmail发送电子邮件

我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', '[email protected]'), 
    '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 
[email protected] 
MAIL_PASSWORD=mypassword 
MAIL_ENCRYPTION=tls 

我也允许在Gmail设置 “不够安全的应用”。

邮件代码工作完美,我已经在mailtrap.io上试过了。但是,如果我将其更改为谷歌,我只会得到错误。

这就是我的发送邮件代码:

\Mail::to('[email protected]')->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

看一看在这个[问题](https://开头的github .com/PHPMailer/PHPMailer/issues/368) – Webinion

+0

谢谢!这帮助了我。我在本地主机上进行编程,如果有新事物发挥作用,我将它放到我的实时网页上。由于在本地主机上工作,我不会发送邮件。我现在在我的网页上使用了相同的代码,它的工作非常完美。多谢,伙计! – dwdawdawdaw

回答

2

试试这个,它为我工作:

MAIL_PORT=465 
MAIL_ENCRYPTION="ssl" 

还要确保如果您正在使用2FA生成应用密码。

+1

这是适合我的作品 – rslhdyt

0

然后不要使用TLS或SSL。

MAIL_ENCRYPTION=tls 

'encryption' => env('MAIL_ENCRYPTION', 'tls'), 

变化既:

MAIL_ENCRYPTION= 

'encryption' => env('MAIL_ENCRYPTION', ''), 

然后运行:

php artisan config:clear 

这应该做的工作