0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Laravel]Gmailを利用したメール送信

Posted at

自身のLaravel学習の備忘録として。
Laravelにおいてメール送信機能はパスワードリマインダーなどで使用される。
パスワードを忘れてしまい、ログイン出来ないときにemailに再設定のメールを送るやつ。

以下の写真において,画面右上に「LOGIN」と「REGISTER」が表示されているように、すでにアプリケーションに認証機能を実装された状態。

スクリーンショット 2020-09-24 0.54.27.png

#環境
macOS Catalina バージョン10.15.4
Laravel 5.8.38

#Gmail側の設定
以下のURLから設定。
https://myaccount.google.com/security

googleアカウントでは以下の設定を行う。
  ・「2段階認証プロセス」を「オン」にする
  ・「アプリパスワード」を設定する

「2段階認証プロセス」はスマートフォンのGoogleアプリを使うなどしてGoogleアカウントの認証を行う方法。
この設定をしないと次の「アプリパスワード」の設定が出来ない。

スクリーンショット 2020-09-24 0.08.44.png

アプリパスワードの「アプリを選択」のプルダウンで「その他(名前を入力)」を選択し、アプリ名を入力する。
写真では「Laravel」となっているがアプリ名はわかりやすいものがいい。

スクリーンショット 2020-09-24 0.20.24.png

「生成」ボタンを押すとアプリパスワードが表示される。
このパスワードをLaravelの設定ファイルに書き込む。

スクリーンショット 2020-09-24 0.28.41.png

Laravelの.envを開き、以下の部分を修正。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=****@gmail.com ← 自分のgmailのメールアドレス
MAIL_PASSWORD=**** ← アプリパスワード
MAIL_ENCRYPTION=tls

MAIL_PASSWORDには先ほど生成したアプリパスワードを入力。

ちなみにMAIL_PORTで指定した587という数字はSMTP(TLS/STARTTLS)のポート番号。

SMTP
SMTP(Simple Mail Transfer Protocol)とは、送信したメールを宛先のメールサーバーまで届ける技術のこと。
ユーザーがメールソフトウェア(例:Gmailなど)を使用してメールを送信すると、設定されているSMTPサーバーがメールを送信先のサーバーに配信します。

TLS
TLSとはSSLの次世代規格のことで、電子メールを暗号化することでプライバシーを保護するセキュリティプロトコルを指します。

STARTTLS
STARTTLSとは、メールの送受信を暗号化する方法です。送信サーバーから受信サーバーへのデータ通信を暗号化することにより、メール通信経路上の悪意のあるハッキングからメールを保護できます。

#動作確認
実際に「REGISTER」からアカウントを登録。試しに自身のgmailのアドレスで登録。メールが届き、ログイン状態になればOK。

0
2
0

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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?