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

Laravel関連のおすすめ本・Udemy講座

コメント

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