- ローカル環境でメール通知系のテストをするためにメールサーバー(Postfix)を構築したかったので、Dockerを用いたその構築方法をメモする。
Postfixとは
- オープンソースのメール転送エージェント(Mail Transfer Agent、MTA)ソフトウェア。
- MTA間のメール送信/受信を行う。
メールサーバーコンテナ起動方法
- こちらのイメージを利用させていただく。
- Dockerコマンド
docker run -d -p 25:25 --name testmailserver -e maildomain=example.com -e smtp_user=username:password catatnight/postfix
-
ユーザー認証設定を複数指定する場合
-
-e smtp_user=user1:pwd1,user2:pwd2,...,userN:pwdN
のように指定する。
-
-
Open DKIM (Domainkeys Identified Mail) を有効化する場合
- なりすましやメール改竄を検知するための電子署名方式の送信ドメイン認証。
-
-v /path/to/domainkeys:/etc/opendkim/domainkeys
のように指定する。- 鍵ファイル(
.private
)を/etc/opendkim/domainkeys
へマウントする。
- 鍵ファイル(
-
TLSを有効化する場合
-
-v /path/to/certs:/etc/postfix/certs
のように指定する。- 鍵ファイル(
.key
)と証明書(.crt
)を/etc/postfix/certs
へマウントする。
- 鍵ファイル(
-
動作確認
- コンテナ起動状態確認
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
df86879c9e0c catatnight/postfix "/bin/sh -c '/opt/in…" Less than a second ago Up 3 seconds 0.0.0.0:25->25/tcp
testmailserver
-
接続確認
- 自身の環境がWindowsのため、telnetを有効化する。
- クイックアクセスメニューから[アプリと機能]を実行し、[プログラムと機能]のリンクをクリックし、[Windowsの機能の有効かまたは無効化]を実行する。
- 追加機能の一覧画面から[Telnetクライアント]項目を選んで追加する。
- 次のコマンドを実行する。
telnet localhost smtp
220 example.com ESMTP Postfix (Ubuntu)
次はアプリとつなぐところまで試したい。