メール送信テストツール Mailpit を使ってみた

開発

概要

Mailpit とはメール送信とSMTPのテストを行うためのツールです。

大量メール送信による負荷テストを行うため、メール送信先サーバとして Mailpit を使用できるようにしてほしいという顧客からの要望により環境を用意しました。

Mailpit には、デフォルトとして以下のポートが用意されています。

ポート 用途
1025 SMTP(メール送信先)
8025 Web UI(送信結果確認)

 

インストール

Mailpitを検索すると Docker を使用したインストール方法が案内されていますが、当社では Docker 非推奨のため、AlmaLinux 9 環境でのインストール手順を以下に記載します。
 

1. 事前準備

必要なパッケージをインストールします。

# dnf install -y curl tar

 

2. インストール(自動スクリプト)

Mailpit 公式が提供しているインストールスクリプトを使用します。

# sudo bash <(curl -sL https://raw.githubusercontent.com/axllent/mailpit/develop/install.sh)

 

3. インストール確認

以下のコマンドでバージョンを確認します。

# mailpit version
mailpit v1.29.5 compiled with go1.26.1 on linux/amd64
Error checking for latest release: no releases found

※ “Error checking for latest release” は無視して問題ありません。
 

4. サービス化

Mailpit を systemd サービスとして登録します。

# chmod +x /usr/local/bin/mailpit
# vi /etc/systemd/system/mailpit.service

以下の内容を mailpit.service に記述します。

[Unit]
Description=Mailpit
After=network.target
 
[Service]
Type=simple
User=root
# 引数なしで起動するとデフォルトで 1025(SMTP) と 8025(UI) を使いますが、
# 明示的に指定する場合は以下のように環境変数を使うのが最も確実です。
Environment=MP_UI_BIND_ADDR=0.0.0.0:8025
Environment=MP_SMTP_BIND_ADDR=0.0.0.0:1025
ExecStart=/usr/local/bin/mailpit
Restart=always
 
[Install]
WantedBy=multi-user.target

サービスを有効化・起動します。

# systemctl daemon-reload
# systemctl enable --now mailpit

 

5. ファイアウォール設定

AlmaLinux 9 のデフォルトではポートが閉じているため、任意の方法でWeb UI(8025)と SMTP(1025)を開放してください。
 

6. テスト

ブラウザから以下の URL にアクセスして動作確認を行います。

http://該当サーバのアドレス:8025/

認証等は特に入っていないため、必要な場合は必ずIP制限を行ってください。
作業端末もしくはサーバ内部にログインしてswaksをインストールしてください。

# yum install swaks

以下のコマンドで10通のテストメールを送信。
太字の10の箇所を別の数字に変えることで任意の数のメールを送信できます。

# for i in {1..10}; do
 SUBJECT_B64=$(echo -n "大量送信テスト $i" | base64)
 swaks --to test$i@example.com \
    --from sender@testmail.net \
    --server 該当サーバのアドレス \
    --port 1025 \
    --body "これは $i 通目のテストメールです。" \
    --header "Subject: =?UTF-8?B?${SUBJECT_B64}?=" \
    --header "Content-Type: text/plain; charset=UTF-8"
done

送信されたメールが Web UI 上に表示されれば、正常に動作しています。