[教學] 應用程式使用 gmail SMTP 寄信指南

前一篇有介紹使用 SendGrid 進行寄信的方式,但是 SendGrid 需要有 Domain 才能夠驗證通過,有時並不是每個人都有 Damain 可以使用,所以會選擇使用 gmail 寄信,而相對於以前 gamil 的教學需要開啟「低安全性應用程式存取權」,但是此方法已經在 2022/05/30 不再支援,本篇將介紹如果新的使用 Gmail 來進行寄信的教學

啟用 Google 帳號「二步驟驗證」

要讓 gmail 能夠使用應用程式寄信,需要先將該帳號啟用二階段驗證

首先到 google 帳號的設定中

選擇「安全性」設定 (連結:https://myaccount.google.com/security)

並在再頁面中找到「二步驟驗證」,點擊進去

接著照著步驟畫面的步驟進行設定完成「二步驟驗證」

建立「應用程式密碼」

回到剛剛的「安全性」設定頁面

接著在頁面中找到應用程式密碼

選取應用程式選擇「其他 (自訂名稱)」

依據個人習慣取一個名稱

這時會拿到一組應用程式密碼,此密碼就能代替登入的帳密碼了

在程式中設定 smtp

這邊以 Laravel 框架為例

在 .env 中設定輸入 gmail 設定,其中

  • MAIL_USERNAME 與 MAIL_FROM_ADDRESS 填使用者的帳號
  • MAIL_PASSWORD 為取得的應用程式密碼
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=xxxxxxx@gmail.com
MAIL_PASSWORD=oooooooooooo
MAIL_ENCRYPTION=ssl
MAIL_FROM_ADDRESS=xxxxxxx@gmail.com
MAIL_FROM_NAME=Laravel

這樣就完成 gmail smtp 寄信設定了

發表迴響