前一篇有介紹使用 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 寄信設定了