「コンテナ - MailHog」の版間の差分
ページの作成:「== 概要 == <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 == | ||
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:custom | ||
<br><br> | <br><br> | ||
| 16行目: | 40行目: | ||
Composeファイルを作成する。<br> | Composeファイルを作成する。<br> | ||
<br> | <br> | ||
<syntaxhighlight lang="yaml"> | |||
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: | |||
</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 ==== | ||
# | # 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 | ||
# | # UFWを使用している場合 | ||
sudo ufw allow 1025/tcp | sudo ufw allow 1025/tcp | ||
sudo ufw allow 8025/tcp | sudo ufw allow 8025/tcp | ||
<br> | <br> | ||
==== | ==== Windows 11 ==== | ||
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> | |||
# 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> | ||
正常にポート開放が行われているかどうかを確認する場合、別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
参考情報