DockerのMailHogでメールの受信環境を構築する!

メール受信のテストを行いたいが、そのためにメールサーバを構築するのは手間がかかります。DockerのMailHogを使用すれば、簡単にメール受信の環境を構築することができます。

Dockerのバージョンを確認する!

MailHogは、Docker Hubで公開されています。Docker Hubのページで使用するバージョンを確認します。

DockerでMailHogを起動する!

DockerでMailHogを起動します。

$ docker run --name mailhog --rm -d -p 8025:8025 -p 1025:1025 mailhog/mailhog:v1.0.1
Unable to find image 'mailhog/mailhog:v1.0.1' locally
v1.0.1: Pulling from mailhog/mailhog
df20fa9351a1: Pull complete 
ed8968b2872e: Pull complete 
a92cc7c5fd73: Pull complete 
f17c8f1adafb: Pull complete 
03954754c53a: Pull complete 
60493946972a: Pull complete 
368ee3bc1dbb: Pull complete 
Digest: sha256:8d76a3d4ffa32a3661311944007a415332c4bb855657f4f6c57996405c009bea
Status: Downloaded newer image for mailhog/mailhog:v1.0.1
465588d3a77721ab671278e7760d6ce0ae2ce7f74c21fcd048125f4ad2e9b04d
$ docker image ls
REPOSITORY        TAG       IMAGE ID       CREATED       SIZE
prom/prometheus   latest    b816c2dd5971   9 days ago    223MB
mailhog/mailhog   v1.0.1    4de68494cd0d   2 years ago   392MB
 docker ps
CONTAINER ID   IMAGE                    COMMAND     CREATED          STATUS          PORTS                                                                                  NAMES
465588d3a777   mailhog/mailhog:v1.0.1   "MailHog"   20 seconds ago   Up 19 seconds   0.0.0.0:1025->1025/tcp, :::1025->1025/tcp, 0.0.0.0:8025->8025/tcp, :::8025->8025/tcp   mailhog

メール送信を行う!

メール送信は、1025版ポートに対して行います。

メールの受診画面を確認する!

Webブラウザより、8025ポートで受信メールを確認します。例えば、「vmsans01」のサーバ上で起動した場合は、以下のURLでアクセスします。

http://vmsans01:8025

テストで、ローカルのPC環境で起動して、以下のURLで利用することも多いでしょう。

http://localhost:8025

MailHogをsystemdで自動起動する!

MailHogをsystemdで自動起動するために、systemdのUnitファイルを作成します。

$ cat /etc/systemd/system/mailhog.service 
[Unit]
Description=MailHog container
Requires=docker.service
After=docker.service

[Service]
Type=simple
ExecStart=/usr/bin/docker run --name mailhog --rm -p 8025:8025 -p 1025:1025 mailhog/mailhog:v1.0.1
ExecStop=/usr/bin/docker container stop mailhog
User=usradmin

[Install]
WantedBy=multi-user.target

起動と停止のテストを行います。

$ sudo systemctl daemon-reload
$ sudo systemctl start mailhog.service
$ sudo systemctl status mailhog.service
$ sudo systemctl stop mailhog.service
$ sudo systemctl status mailhog.service

MailHogの自動起動を有効にします。

$ sudo systemctl enable mailhog.service 
Created symlink /etc/systemd/system/multi-user.target.wants/mailhog.service → /etc/systemd/system/mailhog.service.

おわりに

DockerのMailHogを利用すると簡単にメール受信のテスト用の環境を用意することができます。

参考情報

関連記事

関連書籍(Amazon)