LoginSignup
17
13

Gmailを利用したLaravelのメール送信設定

Last updated at Posted at 2020-12-10

Laravelは認証機能をサクッと作れて便利ですよね。
5系だったらphp artisan make:auth、最近の8系でもphp artisan jetstream:installで簡単に作る(というか用意してもらう)ことができます。

ただ、認証周りでもパスワードリセットなどのメールが絡む機能の設定だけは自分でやる必要があります。

他の方の資料を参照しつつ、Gmailを利用したメール設定をしていきます!

ちなみに、以下の環境でお送りします。

Laravel ver8
デプロイ先heroku

1.Gmailで2段階認証の設定

・Chromeでgoogleを見ると表示されるメニューから「アカウント」を選択
image.png

・左メニュー「セキュリティ」から「2段階認証」を選択
image.png

※ はじめての人は↑のアプリパスワードの欄がないかもしれませんが、一旦気にせず進めます。

・パスワードを入力する(パスワード忘れた場合はリセットして入力を進める)

・パスワード入力を終えると2段階認証の方法を選択する画面に移ります。
image.png

この画面の認証設定はデフォルトの「音声」「テキストメッセージ」どちらでもOKです。
[次へ]に行くとスマホ等にパスワードが送られてくるので、それを画面に打つと↓のような画面が表示されたら次のステップへ行きます。

image.png

2. ログインできるアプリの登録

左メニューからデータとプライバシー > アプリとサービス > アカウントにアクセスできるサードパーティーアプリの登録 を選択!
*最近設定したらカード全体ではなく、アイコン>しかクリックできないようになってたので注意。

image.png

2.アプリパスワードの発行

・セキュリティ画面へ戻り「アプリパスワード」を選択、パスワード入力を求められるので、再度入力
アプリパスワードの画面にいったら、、、
image.png

・アプリを選択 > メール
・デバイスを選択 > その他 > アプリの名前を入力
して生成ボタンを押す。

・アプリパスワードが表示されるのでメモする。
※ メモを忘れたら再発行しましょう
image.png

これでGmail側でやることは終わりました。

3.Laravel側の環境変数に設定する

Laravelの環境変数(Mail_xxxx)を設定していきます。

.env
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=hoge@example.com // メールアドレス
MAIL_PASSWORD=hogehogehoge     // アプリパスワード
MAIL_FROM_ADDRESS=hoge@example.com  // MAIL_USERNAMEと同じ
MAIL_FROM_NAME=Laravel便り // メール送信元名

herokuにデプロイしている場合はアプリの管理ページ内Settings > Config varsから設定します。
image.png

これでメール送信のための設定は終わりです。
パスワードリセット画面などからメールを送信してみましょう!

補足

・開発環境と本番環境どっちもでメール送信する時はそれぞれに別のアプリパスワードを発行・設定する必要あり
.envに書いた場合はphp artisan cache:clearを実行してキャッシュ(編集前の環境変数情報)を消す
・デプロイしたアプリの.envに設定した場合はcache:clearの後にphp artisan config:cacheを実行する

参考資料

Laravelメール送信機能の実装でmailtrapやGmailのSMTPサーバーを使ってみる
Laravelでメール送信を送信したい
LaravelでGメールを送信する方法。アプリパスワードを取得すればOK。
Failed to authenticate on SMTP server with username

17
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
13