6
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 1 year has passed since last update.

GoogleのSMTPサーバーを利用してメールを送信する

Last updated at Posted at 2023-11-23

概要

メール送信機能を実装する際に、GoogleのSMTPサーバーを利用してLaravelからメール送信を行う方法について紹介します。これにより、メールサーバーを独自に構築せずに、手軽にメール送信機能を組み込むことができます。

初めはSendGridを検討しましたが、個人利用者が契約できないといった制約があったため、代わりにGoogleのSMTPサーバーを選択しました。

2段階認証を有効にする

まずGoogleアカウントを管理から下記のページまで移動します。
https://myaccount.google.com/security

スクリーンショット 2023-11-23 13.53.56.png

2段階認証プロセスをクリックして画面に従って有効にしてください。

注意: 2段階認証を有効にしないと、メール送信ができないので注意が必要です。

アプリのパスワードを設定する

設定できない場合は、2段階認証を有効にしていない可能性があります。

[アプリパスワード] 設定ページから、アプリの名前(ここではLaravel)を入力します。
https://myaccount.google.com/apppasswords

スクリーンショット 2023-11-23 14.36.48.png

すると下記のように16文字のパスワードが表示されます。

スクリーンショット 2023-11-23 14.37.07.png

注意: アプリのパスワードは.envファイルに記述するため、慎重に管理してください。

.envに記述する

上記で設定した値で.envを編集していきます。

.env
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=自身のメールアドレス
MAIL_PASSWORD=16文字のパスワード
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="${MAIL_USERNAME}"

MAIL_ENCRYPTIOは、Laravelのメール機能がSMTPサーバーとの通信時に使用するセキュリティプロトコルを指定するための設定です。TLSを使用します。

MAIL_PORTには、GmailのSMTP(TLS)のポートである587を指定してください。

注意: MAIL_PASSWORDには、先程生成したアプリパスワードを貼り付けます。コピペ時に半角スペースが入らないように注意してください。

キャッシュをクリアする

.envを編集したので古いキャッシュ(編集前の環境変数情報)をクリアして編集後の値を適用します。

$ php artisan cache:clear

これで、LaravelからGoogleのSMTPサーバーを利用してメール送信が可能になります。

参考

6
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
6
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?