[Laravel]gmailのsmtpを使ってメール送信する

Laravel

laravelでgmail(smtp)を使って、メール送信をする方法です。
前回、検証用リポジトリに認証機能を追加してみましたが、パスワードリセットなどのメール送信がそのままではできないため

gmailを使ってメール送信を行なってみました。
laravel6で確認しています。

gmailの2段階認証設定を行う

myaccout.google.comで2段階認証設定をしていない場合
セキュリティタブから2段階認証プロセスのところをクリックして、設定します。

スマホ端末が表示されて、SMSで確認コードが飛んでくるので、入力すると完了します。

smtpアプリパスワードを取得する

2段階認証が完了していると、下記のようにアプリパスワードを作れる画面へのリンクが出てきます。

設定画面に進んで、下記のようにデバイス選択をして生成すると16桁のパスワードが表示されるので、コピーしておきます。

.envの設定を変える

.envのメール設定を下記のように変更します。
app passwordが取得したアプリパスワードです。
MAIL_FROM_ADDRESS, MAIL_USERNAMEはメールアドレスを設定しておいて、MAIL_FROM_NAMEはfromに表示される名前になります。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=<mail address>
MAIL_PASSWORD=<app password>
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=<mail address>
MAIL_FROM_NAME=test

パスワードリセットを動かしてみる

forgot your password?のリンク(/password/reset)からリセットリンクを入力するフォームに移動して
入力して送信すると…

こんな感じで、リセットリンクの送信に完了します。

下記のように、メールがくることが確認できます。

コメント

タイトルとURLをコピーしました