「コンテナ - MailHog」の版間の差分

提供: MochiuWiki : SUSE, EC, PCB

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == <br><br> == Containerfile == MailHogコンテナを作成する。<br> podman run -d \ --name mailhog \ -p 0.0.0.0:1025:1025 \ -p 0.0.0.0:8025:8025 \ -v mailhog-data:/data \ mailhog/mailhog <br><br> == Compose == Composeファイルを作成する。<br> <br> <syntaxhighlight lang="yaml"> version: '3' services: mailhog: image: mailhog/mailhog container_name: mailhog ports: - "0.0.0.0:1025…」
 
編集の要約なし
1行目: 1行目:
== 概要 ==
== 概要 ==
 
MailHogは、開発環境で使用するメールテスト用のツールである。<br>
<br>
SMTPサーバとして動作し、送信されたメールを実際には配信せず、Web UIで確認することができる。<br>
これにより、開発中に誤って実際のメールアドレスにメールを送信してしまうリスクを防ぐ。<br>
<br>
MailHogの主な機能を以下に示す。<br>
* SMTPサーバ機能 (デフォルト : ポート1025)
* Web UI でのメール確認 (デフォルト : ポート8025)
* 送信されたメールの保存と検索
* メールの削除や詳細表示
<br><br>
<br><br>


== Containerfile ==
== Containerfile ==
MailHogコンテナを作成する。<br>
Containerfileを作成する。<br>
<br>
<syntaxhighlight lang="dockerfile">
FROM mailhog/mailhog:latest
EXPOSE 1025 8025
VOLUME ["/data"]
CMD ["MailHog"]
</syntaxhighlight>
<br>
コンテナイメージをビルドする。<br>
podman build -t mailhog:custom -f Containerfile .
<br>
ビルドしたイメージからコンテナを実行する。<br>
  podman run -d          \
  podman run -d          \
   --name mailhog        \
   --name mailhog        \
10行目: 34行目:
   -p 0.0.0.0:8025:8025  \
   -p 0.0.0.0:8025:8025  \
   -v mailhog-data:/data \
   -v mailhog-data:/data \
   mailhog/mailhog
   mailhog:custom
<br><br>
<br><br>


16行目: 40行目:
Composeファイルを作成する。<br>
Composeファイルを作成する。<br>
<br>
<br>
<syntaxhighlight lang="yaml">
<syntaxhighlight lang="yaml">
version: '3'
version: '3'
services:
services:
  mailhog:
  mailhog:
    image: mailhog/mailhog
    image: mailhog/mailhog
    container_name: mailhog
    container_name: mailhog
    ports:
    ports:
      - "0.0.0.0:1025:1025"  # SMTP用(すべてのIPでリッスン)
      - "0.0.0.0:1025:1025"  # SMTP用(すべてのIPでリッスン)
      - "0.0.0.0:8025:8025"  # Web UI用(すべてのIPでリッスン)
      - "0.0.0.0:8025:8025"  # Web UI用(すべてのIPでリッスン)
    volumes:
    volumes:
      - mailhog-data:/data
      - mailhog-data:/data
 
volumes:
volumes:
  mailhog-data:
  mailhog-data:
</syntaxhighlight>
</syntaxhighlight>
<br>
<br>
Composeファイルを実行して、コンテナを作成および実行する。<br>
Composeファイルを実行して、コンテナを作成および実行する。<br>
36行目: 60行目:
  # または
  # または
  podman-compose -f <Composeファイル名> up -d
  podman-compose -f <Composeファイル名> up -d
== アクセス方法 ==
コンテナが起動したら、以下のURLでアクセスできる。<br>
<br>
* Web UI: <nowiki>http://localhost:8025</nowiki>
* SMTP サーバー: localhost:1025
<br>
==== アプリケーションからの使用例 ====
アプリケーションのメール設定で以下のように設定する。<br>
<br>
SMTP Host: localhost(または MailHog が動作しているホスト)
SMTP Port: 1025
認証: 不要
暗号化: なし
<br><br>
<br><br>


42行目: 80行目:
<br>
<br>
==== Linux ====
==== Linux ====
  # Linux : Firewalldを使用している場合
  # Firewalldを使用している場合
  sudo firewall-cmd --permanent --add-port=1025/tcp
  sudo firewall-cmd --permanent --add-port=1025/tcp
  sudo firewall-cmd --permanent --add-port=8025/tcp
  sudo firewall-cmd --permanent --add-port=8025/tcp
  sudo firewall-cmd --reload
  sudo firewall-cmd --reload
   
   
  # Linux : UFWを使用している場合
  # UFWを使用している場合
  sudo ufw allow 1025/tcp
  sudo ufw allow 1025/tcp
  sudo ufw allow 8025/tcp  
  sudo ufw allow 8025/tcp  
<br>
<br>
==== Winodws 11 ====
==== Windows 11 ====
PowerShellを起動して、以下に示すコマンドを実行する。<br>
PowerShellを管理者権限で起動して、以下に示すコマンドを実行する。<br>
<br>
<br>
SMTPポート(1025)の受信ルールを追加する。<br>
SMTPポート(1025)の受信ルールを追加する。<br>
64行目: 102行目:
  Test-NetConnection -ComputerName <Windows PCのIPアドレス> -Port 1025
  Test-NetConnection -ComputerName <Windows PCのIPアドレス> -Port 1025
<br>
<br>
また、ポートを閉じる場合は、以下に示すコマンドを実行する。<br>
ファイアウォールルールを削除する場合は、以下に示すコマンドを実行する。<br>
# SMTPポート(1025)のルール削除
Remove-NetFirewallRule -DisplayName "Mailhog SMTP" -ErrorAction SilentlyContinue
# Web UIポート(8025)のルール削除
Remove-NetFirewallRule -DisplayName "Mailhog Web UI" -ErrorAction SilentlyContinue
<br>
==== Windows 10 ====
PowerShellを管理者権限で起動して、以下に示すコマンドを実行する。<br>
<br>
SMTPポート(1025)の受信ルールを追加する。<br>
New-NetFirewallRule -DisplayName "Mailhog SMTP" -Direction Inbound -Protocol TCP -LocalPort 1025 -Action Allow
<br>
Web UIポート(8025)の受信ルールを追加する。<br>
New-NetFirewallRule -DisplayName "Mailhog Web UI" -Direction Inbound -Protocol TCP -LocalPort 8025 -Action Allow
<br>
<br>
  # Windowsファイアウォールルールを削除
正常にポート開放が行われているかどうかを確認する場合、別PCからPowerShellを起動して、以下のコマンドを実行する。<br>
   
  Test-NetConnection -ComputerName <Windows PCのIPアドレス> -Port 8025
  Test-NetConnection -ComputerName <Windows PCのIPアドレス> -Port 1025
<br>
ファイアウォールルールを削除する場合は、以下に示すコマンドを実行する。<br>
  # SMTPポート(1025)のルール削除
  # SMTPポート(1025)のルール削除
  Remove-NetFirewallRule -DisplayName "Mailhog SMTP" -ErrorAction SilentlyContinue
  Remove-NetFirewallRule -DisplayName "Mailhog SMTP" -ErrorAction SilentlyContinue
73行目: 128行目:
  # Web UIポート(8025)のルール削除
  # Web UIポート(8025)のルール削除
  Remove-NetFirewallRule -DisplayName "Mailhog Web UI" -ErrorAction SilentlyContinue
  Remove-NetFirewallRule -DisplayName "Mailhog Web UI" -ErrorAction SilentlyContinue
<br><br>
== 参考情報 ==
* [https://github.com/mailhog/MailHog MailHog GitHub リポジトリ]
* [https://hub.docker.com/r/mailhog/mailhog MailHog Docker Hub]
<br><br>
<br><br>




[[カテゴリ:コンテナ]]
[[カテゴリ:コンテナ]]

2025年11月10日 (月) 00:10時点における版

概要

MailHogは、開発環境で使用するメールテスト用のツールである。

SMTPサーバとして動作し、送信されたメールを実際には配信せず、Web UIで確認することができる。
これにより、開発中に誤って実際のメールアドレスにメールを送信してしまうリスクを防ぐ。

MailHogの主な機能を以下に示す。

  • SMTPサーバ機能 (デフォルト : ポート1025)
  • Web UI でのメール確認 (デフォルト : ポート8025)
  • 送信されたメールの保存と検索
  • メールの削除や詳細表示



Containerfile

Containerfileを作成する。

 FROM mailhog/mailhog:latest
 
 EXPOSE 1025 8025
 
 VOLUME ["/data"]
 
 CMD ["MailHog"]


コンテナイメージをビルドする。

podman build -t mailhog:custom -f Containerfile .


ビルドしたイメージからコンテナを実行する。

podman run -d           \
  --name mailhog        \
  -p 0.0.0.0:1025:1025  \
  -p 0.0.0.0:8025:8025  \
  -v mailhog-data:/data \
  mailhog:custom



Compose

Composeファイルを作成する。

version: '3'
services:
  mailhog:
    image: mailhog/mailhog
    container_name: mailhog
    ports:
      - "0.0.0.0:1025:1025"  # SMTP用(すべてのIPでリッスン)
      - "0.0.0.0:8025:8025"  # Web UI用(すべてのIPでリッスン)
    volumes:
      - mailhog-data:/data

volumes:
  mailhog-data:


Composeファイルを実行して、コンテナを作成および実行する。

podman-compose up -d
# または
podman-compose -f <Composeファイル名> up -d

アクセス方法

コンテナが起動したら、以下のURLでアクセスできる。

  • Web UI: http://localhost:8025
  • SMTP サーバー: localhost:1025


アプリケーションからの使用例

アプリケーションのメール設定で以下のように設定する。

SMTP Host: localhost(または MailHog が動作しているホスト)
SMTP Port: 1025
認証: 不要
暗号化: なし



ファイヤーウォールの設定

同一ネットワーク上の外部PCからアクセスする場合は、ファイヤーウォールのポート開放を行う。

Linux

# Firewalldを使用している場合
sudo firewall-cmd --permanent --add-port=1025/tcp
sudo firewall-cmd --permanent --add-port=8025/tcp
sudo firewall-cmd --reload

# UFWを使用している場合
sudo ufw allow 1025/tcp
sudo ufw allow 8025/tcp 


Windows 11

PowerShellを管理者権限で起動して、以下に示すコマンドを実行する。

SMTPポート(1025)の受信ルールを追加する。

New-NetFirewallRule -DisplayName "Mailhog SMTP" -Direction Inbound -Protocol TCP -LocalPort 1025 -Action Allow


Web UIポート(8025)の受信ルールを追加する。

New-NetFirewallRule -DisplayName "Mailhog Web UI" -Direction Inbound -Protocol TCP -LocalPort 8025 -Action Allow


正常にポート開放が行われているかどうかを確認する場合、別PCからPowerShellを起動して、以下のコマンドを実行する。

Test-NetConnection -ComputerName <Windows PCのIPアドレス> -Port 8025
Test-NetConnection -ComputerName <Windows PCのIPアドレス> -Port 1025


ファイアウォールルールを削除する場合は、以下に示すコマンドを実行する。

# SMTPポート(1025)のルール削除
Remove-NetFirewallRule -DisplayName "Mailhog SMTP" -ErrorAction SilentlyContinue

# Web UIポート(8025)のルール削除
Remove-NetFirewallRule -DisplayName "Mailhog Web UI" -ErrorAction SilentlyContinue


Windows 10

PowerShellを管理者権限で起動して、以下に示すコマンドを実行する。

SMTPポート(1025)の受信ルールを追加する。

New-NetFirewallRule -DisplayName "Mailhog SMTP" -Direction Inbound -Protocol TCP -LocalPort 1025 -Action Allow


Web UIポート(8025)の受信ルールを追加する。

New-NetFirewallRule -DisplayName "Mailhog Web UI" -Direction Inbound -Protocol TCP -LocalPort 8025 -Action Allow


正常にポート開放が行われているかどうかを確認する場合、別PCからPowerShellを起動して、以下のコマンドを実行する。

Test-NetConnection -ComputerName <Windows PCのIPアドレス> -Port 8025
Test-NetConnection -ComputerName <Windows PCのIPアドレス> -Port 1025


ファイアウォールルールを削除する場合は、以下に示すコマンドを実行する。

# SMTPポート(1025)のルール削除
Remove-NetFirewallRule -DisplayName "Mailhog SMTP" -ErrorAction SilentlyContinue

# Web UIポート(8025)のルール削除
Remove-NetFirewallRule -DisplayName "Mailhog Web UI" -ErrorAction SilentlyContinue



参考情報