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)からリセットリンクを入力するフォームに移動して
入力して送信すると…
こんな感じで、リセットリンクの送信に完了します。
下記のように、メールがくることが確認できます。
コメント