以前に書いた、下記の記事で会員登録とログインはできたのですが、パスワードをリセットしようとするとエラーが発生してしまいます。
なので、今回は「Laravel でパスワードをリセットする際にメールを送信させる方法」について書きました。
Laravelでパスワードリセットのメールを送信する
Laravelプロジェクトの作成と認証に必要なビューを生成する
プロジェクトを作成し、認証に必要なビューなどを生成します。
$ composer create-project --prefer-dist laravel/laravel mail_auth
$ cd mail_auth
$ php artisan make:auth
DBの設定・マイグレーションを実行する
続いて .envファイルでDBの設定をします。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mail_auth
DB_USERNAME=root
DB_PASSWORD=root
DBを作成し、マイグレーションを実行!
$ mysql -u root -p
mysql> create database mail_auth;
$ php artisan migrate
MustVerifyEmailをimplementsする
app/User.php
ファイルに以下を追加します。
class User extends Authenticatable implements MustVerifyEmail // implements MustVerifyEmailを追加
routes/web.php
ファイルのroutesに以下の引数を渡してあげます。
Auth::routes(['verify' => true]); // Auth::routes();の部分をこのように変更
mailtrapを使ってメール送信の確認をする
今回は、mailtrap というサービスを使って、パスワードリセットのメール送信が行われているかどうかを確認します。
mailtrapとは、簡単に言えば「開発環境でメール送信のテストができるサービス」です
まず、mailtrapにアカウント登録し、その後.envの設定を変更。
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=username //mailtrapのユーザー名
MAIL_PASSWORD=password //mailtrapのパスワード
MAIL_ENCRYPTION=null
ここまで出来たら一旦、会員登録をした後にログインして、パスワードをリセットするリンクを押してみましょう。
ログインページ

パスワードリセットリンクをクリックした後のページ

パスワードリセット用メールを送信した後のページ

mailtrapを確認すると、パスワードリセットのメールが送られていることが確認できました!

Laravel関連のおすすめ本・Udemy講座
コメント