2017-07-17 212 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 

這應該做的工作