2020/08/12
前回、Laravelのログイン機能を自動生成し、各画面を確認しました。
Auth機能にシーダーを実行&各画面の確認(Laravel6)
しかし実はこのままだとメールの設定をしていないので、「リセットパスワード」が使えません。
今回はLaravel6にメールの設定をしてリセットパスワードを使えるようにしてみます。
手順
1.MailGunのアカウントを作成
MailGunとはAPIベースのメール配信サービス(SaaS)です。
登録段階では無料で1日300通のメール配信ができます。
さらにドメイン登録を済ませると1日1万通まで無料で送れるようになります。
今回はドメイン登録の作業を省略して試していきます。
まず、MailGunを利用するにはアカウントを作成する必要があります。
サイトにアクセスしてアカウントを作成します。
Laravelメール送信の為の提供ドライバ
SMTP | SMTPサーバから送信 |
sendmail | PHPのmail関数で送信 |
MailGun | MailGunというAPIベースのメール配信サービスから送信 |
MailDrill | MailDrillというAPIベースのメール配信サービスから送信 |
Amazon SES | AWSが提供する Amazon SES から送信 |
SparkPost | SparkPostというAPIベースのメール配信サービスから送信 |
log | 送信は行わず、ログファイルに書き込む |
array | ロジックは通るが、送信はされない |
2.Guzzle HTTPライブラリを入れる
MailGun(API)にHTTPリクエスト送信するのに「Guzzle」を使用します。
Composerを使って「Guzzle」を入れます。
$ composer require guzzlehttp/guzzle
実演
3.envにMailGunを設定
Laravelの.envファイルにMailGunの情報を設定します。
1)MailGunのドメインを確認
「ログイン」→「Sending」をクリック。
「sandbox****.mailgun.org」と記述されているのがMailGunのドメインになります。
2)MailGunのシークレットキーを確認
先ほどの画面でMailGunのドメイン「sandbox****.mailgun.org」をクリック。
「API」→「cURL」をクリック
「API key」と記述されているのがMailGunのシークレットキーになります。
3)envに書き込む
:
MAIL_DRIVER=mailgun
MAIL_HOST=null
MAIL_PORT=null
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAILGUN_DOMAIN=sandboxb*****.mailgun.org
MAILGUN_SECRET=key-****
:
config\services.php
と config\mail.php
にはデフォルトでMailGunの設定が記述されています。
4)設定ファイルをキャッシュする
.envファイル
を変更したら以下のコマンドを実行して設定を反映させます。
php artisan config:cache
4.動作確認
リセットパスワードを使ってみます。
1)ユーザー登録
Laravelの認証機能でユーザーを作成します。
メールアドレスはMailGunでアカウントを作成したメールアドレスを入力します。
MailGunで作成したメールアドレス以外だと以下のようにエラーになります。
2)リセットパスワード画面でメールアドレス入力
ログアウトして、リセットパスワード画面にて先ほど作成したメールアドレスを入力します。
3)メール確認
入力したメールアドレス宛にリセットパスワードの通知が届きます。
4)リセット画面
通知メールのリンクをクリックすると以下の画面に飛びます。
パスワードを入力して「Reset Password」ボタンをクリック。
以下のような画面になればOKです。
以上です。
PHPフレームワーク Laravel入門 第2版
僕がはじめてLaravelを学習するために参考にしたサイトは、掌田津耶乃(しょうだつやの)さんの libro というサイトです。当時(2016年)、Laravel学習サイトの中でもこのサイトは群を抜いてわかりやすく説明されていたので、とても勉強になったのを覚えています。この本は掌田津耶乃さんが書いた本なので、わかりやすく解説されているだろうと kindle で購入しました。2020年8月の時点でいうと日本国内にて唯一の Laravel の良書と言っても良いかと思います。口コミでもLaravel本のロングセラー定番解説書として認知されています。当サイトではチュートリアル形式でLaravelを解説しているので、初心者の方はこの本とセットで学習されるといいと思います。しかし、かなりわかりやすく解説されているとはいえ、PHP中級者以上のスキルは必要です。PHP自体の知識が乏しい方は 独習PHP 第3版 をあわせて購入することをお勧めします。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。