1. 建立一個發送信件的 Gmail 帳號

2. 設定 laravel mail config ( /config/mail.php )

設定須如下,’from’、’username’、’password’ 須填入發送信件 Gmail 的資料。

'driver' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => 587,
'from' => array('address' => 'xxxxx@gmail.com', 'name' => 'test'),
'encryption' => 'tls',
'username' => 'xxxxx@gmail.com',
'password' => '',
'sendmail' => '/usr/sbin/sendmail -bs'

password 會先空著原因是如果輸入 Gmail 登入密碼的話,寄信時會出現錯誤,錯誤訊息如下:

3. 在 controller 寫進寄信的 function 與 /routes/web.php 寫進測試寄信的 Route

public function SendEmailotMember()
{
    Mail::raw('測試使用 Laravel 的 Gmail 寄信服務', function ($message){
        $message->to('xxxxx@gmail.com', 'test')->subject('訂單成立通知');
    });
}
Route::get('/test/mail', 'YourControllerName@SendEmailotMember');
4. 取得 Gmail 使用的密碼,此密碼才是要填入 mail config( /config/mail.php ) password 的值,步驟如下:
開啟我的帳戶點選登入和安全性

點擊兩步驟驗證

點擊開始檢查按鈕

在此會要求你再次輸入密碼

 
輸入電話並選擇取得驗證碼方式後按立即試用

 
輸入收到的驗證碼

啟用兩步驗證功能

啟用後兩步驗證會出現許多選項設定,目前不會使用到,所以直接返回

 
點擊應用程式密碼

 
選擇裝置與服務後並按下產生

此時會產生一組密碼,而這組密碼就是要給 mail config password 的值,按下完成會看到一筆建立紀錄

5. 將 Gmail 產生的密碼填入 mail config,如下:
'driver' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => 587,
'from' => array('address' => 'xxxx@gmail.com', 'name' => 'test'),
'encryption' => 'tls',
'username' => 'xxxxx@gmail.com',
'password' => 'bzaufsljjmwgeweb',
'sendmail' => '/usr/sbin/sendmail -bs'
6. 測試寄信功能

 
 
arrow
arrow
    文章標籤
    Laravel gmail smtp
    全站熱搜

    Mayuge 發表在 痞客邦 留言(0) 人氣()