» TechAcademyの無料体験

【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

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をコピーしました