【PHP/Laravel】Laravel メール送信機能の構築方法(Mailpitでメール確認)

PHP / Laravel

Laravelメール機能構築 したいんだけど、どうすれば良いのかな?

今回は、Laravelメール機能 構築 し、開発環境でメールを確認できるツール Mailpit を使って、メールを確認する方法まで、ご紹介します。

LaravelMailpit環境構築がまだの場合 は、下記より LaravelMailpit環境構築 を行なってください。

Laravel メール送信機能の実装手順

Laravelメール送信機能を構築する手順 は、以下の通りです。

  1. Laravelでメールの設定
    .env ファイルで SMTPサーバー送信元メールアドレス などを設定 します。
  2. Mailpit の起動
    開発中のメール送信をブラウザで確認できるツール です。
  3. Mailable クラスの作成
    Laravelメール本文や件名を管理するクラス を作成します。
  4. メールテンプレートの作成
    BladeテンプレートHTMLやテキストのメール本文を作成 します。
  5. フォームテンプレートの作成
    Bladeテンプレートメールで送信するフォームテンプレートを作成 します
  6. フォームの表示とメール送信処理のコントローラーの作成
    フォームの表示メールを送信する処理のコントローラを作成 します。
  7. Bladeテンプレートコントローラー の ルーティングの追加
    → 作成した フォームやメールのBladeテンプレートと処理のコントローラーを紐づけるルーティングを追加 する
  8. メールの送信 & Mailpitでメールの確認
    → 実際に Laravel からメールを送信して、Mailpit の管理画面で送信されたメールを開き、件名や本文などメールの設定やテンプレートが正しく動作するか確認 します。

    Gmailメール送信の確認方法 も補足で載せています

Laravel でメールの設定

最初に、.env ファイルのメール設定を確認し、下記のように設定します
開発環境では実際のメールサーバーではなく、メール確認ツール MailpitSMTPサーバー を利用するため、下記のような設定になります。

Mailpit の起動

Mailpit開発用のメールテストツール で、実際にメールは送信せず、ブラウザ上で確認することができます

ブラウザで下記URLの Mailpit管理画面 にアクセス

Mailable クラスの作成

Laravel では Mailableクラス を使って メールを作成 します。
Mailableクラス は、メール本文や件名、送信先などを管理するクラス です。

SampleMail はクラス名で自由に変更可能で、作成すると App\Mail 配下にクラスが生成 されます。

生成コマンド

クラスの作成

メールテンプレートの作成

Bladeテンプレートメールアプリで表示されるHTMLやテキストのメールテンプレートを作成 します。

生成コマンド

テンプレートの作成

フォームテンプレートの作成

Bladeテンプレートメールで送信するフォームテンプレートを作成 します

生成コマンド

テンプレートの作成

フォームの表示とメール送信処理のコントローラーの作成

フォームの表示メールを送信する処理のコントローラを作成 します。

生成コマンド

コントローラーの作成

Bladeテンプレート と コントローラー の ルーティングの追加

作成した フォームやメールのBladeテンプレートと処理のコントローラーを紐づけるルーティングの追加 をする

メールの送信 & Mailpit でメール確認

実際に Laravel からメールを送信して、Mailpit の管理画面で送信されたメールを開き、件名や本文などメールの設定やテンプレートが正しく動作するか確認 します

メールの送信

下記のURLアクセスして、フォーム画面 の各項目を入力後、送信する

Mailpit でメール確認

下記のURLにアクセスして、Mailpitの管理画面 を開いて、受信したメールの確認を行う

処理内容

  1. http://localhost/form」の フォーム画面 の各項目を入力後、送信ボタンをクリック
  2. http://localhost:8025」の Mailpitの管理画面 を開いて、受信したメールの確認を行う

補足:Gmail でメール送信を確認する方法

Laravel からのメール送信確認に Gmail を使用する場合通常のGoogleアカウントのパスワードでは認証できない ため、 Gmailアプリパスワードを作成してSMTP認証に使用する必要 があります。

Gmail アプリパスワードの作成手順

  1. Googleアカウント管理 ページにアクセス
  2. セキュリティとログイン ページに移動
  3. 2段階認証プロセスを有効にする
  4. アプリ パスワードを作成、管理する から ログインして任意のアプリ名を入力した後に16桁のアプリパスワードが発行 される
  5. 下記のように .env ファイルの Gmailアドレス と 上記で発行した Gmailのアプリパスワード を変更して、Laravel sail の再起動 or キャッシュの削除コマンドを実行

Laravel sail の再起動 コマンド

キャッシュの削除 コマンド

まとめ

今回は、Laravelメール送信機能を構築し、開発環境でメールを確認できるツールである Mailpit を使ったメールを確認する方法 をご紹介しましたが、いかがでしたでしょうか?

Mailpit を使ったローカル開発環境でのメール確認方法 や、補足で紹介した Gmail を使ったメール送信の確認方法 などを活用して、お問い合わせ機能などのWebアプリケーション開発 にぜひ役立ててみてください。

公式サイト

Laravel 12 メール

12.x メール Laravel

Mailpit

Mailpit - email & SMTP testing tool
Mailpit is a free, open-source SMTP testing tool built with Go and Vue. It provides a modern web UI for viewing and test...
tachu × tachu

Laravel / React フルスタックエンジニア

Webエンジニア歴15年、フリーランス歴8年で、PHP / Laravel を中心に、
React.js / Vue.js を用いたフルスタックでのWeb開発をしています。

技術記事は Laravel / React / Web開発 を中心に書いています。

Webサービスの開発、既存システム改善、機能追加、技術相談、小規模な開発など、お気軽にご相談ください。

PHP / Laravel
シェアする

コメント

タイトルとURLをコピーしました