0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel の PHP コンテナから Mailpit を使ってメール送信を確認してみた

0
Last updated at Posted at 2026-02-10

はじめに

Laravel のローカル開発でメール送信を確認したいとき、

  • 実メールは送りたくない
  • SMTP の設定で時間を使いたくない
  • 画面でサクッと確認したい

ということ、よくあります。

今回は
Docker で動かしている Laravel の PHP コンテナから Mailpit を使って、
メール送信を確認してみた
ので、その手順をまとめます。


Mailpit とは

Mailpit は、開発用のメールキャッチャーです。

特徴は以下の通りです。

  • SMTP サーバとして動作する
  • 送信されたメールを Web UI で確認できる
  • 実際には外部にメールを送らない
  • Docker との相性がとても良い

Laravel のローカル開発用途として、かなり扱いやすいツールです。


今回の構成

今回の構成はシンプルです。

  • Laravel:PHP コンテナ
  • Mailpit:別コンテナ
  • docker-compose で同一ネットワーク

Laravel から見ると、
SMTP サーバが Mailpit に置き換わるだけ という構成になります。


docker-compose の例

Mailpit を追加した docker-compose の例です。

services:
  app:
    build: .
    container_name: laravel-app
    depends_on:
      - mailpit
    environment:
      MAIL_MAILER: smtp
      MAIL_HOST: mailpit
      MAIL_PORT: 1025

  mailpit:
    image: axllent/mailpit:latest
    container_name: mailpit
    ports:
      - "8025:8025"
      - "1025:1025"

ポイントは次の通りです。

  • SMTP ポートは 1025
  • Web UI は 8025
  • Laravel からの SMTP ホストは mailpit(サービス名)

Laravel の .env 設定

Laravel 側のメール設定を Mailpit 用に変更します。

MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=test@example.com
MAIL_FROM_NAME="Local Laravel App"

Mailpit は認証不要なので、
ユーザー名・パスワード・暗号化設定は不要です。


Laravel からメールを送信してみる

Laravel では、いつも通り Mail を使って送信します。

  • コントローラ
  • バッチ
  • キュー
  • テストコード

どこから送っても問題ありません。

送信処理を実行すると、

  • エラーは出ない
  • 実際のメールは外部に送られない
  • Mailpit にメールが保存される

という挙動になります。


Mailpit の Web UI を確認

ブラウザで次の URL にアクセスします。

http://localhost:8025

すると、以下が確認できます。

  • 送信されたメール一覧
  • 件名・送信元・送信先
  • メール本文(HTML / テキスト)
  • HTML メールのレイアウト

Blade で作った HTML メールの見た目確認にも便利です。


実際に使ってみた感想

使ってみて感じたのは、

  • セットアップがとても簡単
  • SMTP 周りで悩まなくていい
  • UI が見やすい
  • ローカル開発用途として十分

という点でした。

「とりあえずメール送信の確認をしたい」
という用途には、かなりちょうどいいです。


よくあるハマりポイント

Laravel から接続できない

  • MAIL_HOST に localhost を指定していないか確認
  • Docker コンテナ内からは mailpit(サービス名)を使う

Web UI が見られない

  • ポート 8025 がホストに公開されているか確認
  • mailpit コンテナが起動しているか確認

まとめ

  • Mailpit は Laravel のローカル開発にとても便利
  • PHP コンテナからは SMTP サーバとして使うだけ
  • Docker との相性が良く、設定も簡単
  • 実メールを送らず安全に確認できる

Laravel 開発で
「メール送信どう確認しよう?」と悩んだら、
Mailpit はかなりおすすめです。


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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?