Laravel でパスワードリセットのメールを送信する

Laravel でパスワードリセットのメールを送信するLaravel

以前に書いた、下記の記事で会員登録とログインはできたのですが、パスワードをリセットしようとするとエラーが発生してしまいます。

なので、今回は「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 を確認すると、パスワードリセットのメールが送られていることが確認できました!

コメント

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