於 Laravel 專案中套用 Google SMTP,利用 Google Mail Server 來發送 Email

一直以來在各個專案中都是使用 Mailgun 作為發信伺服器居多。
也是在無意間接觸到 Google 也有提供 SMTP 發信服務。
比起 Mailgun 的單月 1000 封免費額度,Google 可是提供了單日 500 封的額度呢!
雖然目前此網站鮮少使用發信功能,但也還是有的。
但還是先將本網站的 Mailgun 功能移除,改使用 Google 的服務。
以下為本次更新後留有的紀錄,以供日後參考。
步驟 1 - 開啟 Google 帳號兩步驟驗證:
看到眾多撰寫本主題的文章都說必須先開啟兩步驟驗證,才會出現後續的選項可供操作。
請先依循以下步驟完成兩步驟驗證

先從 Google 首頁右上角點擊大頭貼,並選擇「管理你的 Google 帳戶」。

接著於左側點擊安全性,並完成兩步驟驗證。

確認兩步驟驗證是綠色打勾的完成狀態後,就可繼續接下來的步驟了。
步驟 2 - 找到應用程式密碼:
雖然說開啟兩步驟驗證後就能找到應用程式密碼這個功能。
但如果還是找不到的話,請直接利用上方搜尋欄搜尋。

利用搜尋欄搜尋就可以找到該功能,點進去後進去操作。

選取應用程式選擇「郵件」。
選取裝置選擇「Windows 電腦」。
按下產生後則會有以下畫面:

請先將此密碼複製下來,稍後會用到。
步驟 3 - 至 Laravel 專案中的 .env 帶入相關資訊:
在 laravel 專案中的 .env 中將 MAIL 相關資訊換成以下資訊:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=XXXXXXXXXXXXX@gmail.com
MAIL_PASSWORD=OOOOOOOOOOOOO
MAIL_ENCRYPTION=tls
MAIL_USERNAME 帶入該帳號的 @gmail.com。MAIL_PASSWORD 則是前一張圖複製下來的密碼。
其餘資訊皆使用上述 code area 的即可。
完成後可刷新 cache。
步驟 4 - 發一封信試試看吧!:
接著完成剩餘的發信功能,並且發送一封信試試看吧。
以下是收到信的畫面:

這樣利用 Google 作為發信伺服器的功能就完成囉!
後記:
繼 Google reCaptcha 之後,連發信都改用 Google 的服務了。
或許再過不久,網站也會從 aws 搬去 GCP 也說不定呢!(燦笑)
另外也為了更好的閱讀體驗,在功能中加入了 CodeSnippet。
希望這樣小小的改變能夠帶給大家更舒適的閱讀體驗。