Spring Boot 1.5.x の Web アプリを 2.0.x へバージョンアップする ( その28 )( Docker で SMTPサーバ+Webmailクライアント環境を構築する )
概要
記事一覧はこちらです。
- 今回の手順で確認できるのは以下の内容です。
- SMTPサーバは smtp4dev v2 version を使用していましたが、Docker の SMTPサーバ環境へ変更します。
- Webmail クライアントの Rainloop を Docker で起動して送信されたメールを確認できるようにします。
- SMTPサーバや Rainloop の環境構築に関する詳しい手順は以下の記事で書いています。今回は簡単に実施した作業を書くだけにします(キャプチャもほぼ貼りません)。
参照したサイト・書籍
目次
手順
SMTP+IMAP4サーバを構築する
まずは SMTPサーバから。Docker イメージは tvial/docker-mailserver を使用します。Webmail クライアント Rainloop からの接続に IMAP4 が使用されるので、IMAP4 も使用可能にします。
プロジェクトの直下に docker/mail-server/config ディレクトリを作成します。
.env に tvial/docker-mailserver のバージョン番号を追加します。
MAILSERVER_VERSION=release-v6.1.0
docker-compose.yml を以下のように変更します。
# docker-mailserver # https://hub.docker.com/r/tvial/docker-mailserver/ # https://github.com/tomav/docker-mailserver # # 起動した docker-mailserver のコンテナ(mail-server) にアクセスする場合には以下のコマンドを実行する # docker exec -it mail-server /bin/sh # # アカウントのパスワードを SHA512 で作成する場合には、コンテナにアクセスして以下のようにコマンドを実行して生成する # doveadm pw -s SHA512-CRYPT -u [メールアドレス(例:tanaka@mail.example.com)] -p [パスワード] # mail-server: image: tvial/docker-mailserver:${MAILSERVER_VERSION} container_name: mail-server hostname: mail domainname: example.com ports: - "25:25" - "143:143" volumes: - ./docker/mail-server/config/:/tmp/docker-mailserver/ environment: # debug したい場合には以下の行のコメントアウトを解除する # - DMS_DEBUG=1 - ENABLE_SPAMASSASSIN=0 - ENABLE_CLAMAV=0 - ENABLE_FETCHMAIL=0 - ENABLE_FAIL2BAN=0 - ENABLE_POSTGREY=0 - ENABLE_POP3=0 cap_add: - NET_ADMIN - SYS_PTRACE restart: always
docker/mail-server/config/postfix-main.cf を新規作成し、以下の内容を記述します。
mydestination = smtpd_recipient_restrictions =
docker/mail-server/config/dovecot.cf を新規作成し、以下の内容を記述します。
disable_plaintext_auth = no ssl = no # debug したい場合には以下の行のコメントアウトを解除する # auth_verbose = yes # auth_debug = yes
docker/mail-server/config/postfix-accounts.cf を新規作成し、以下の内容を記述します。
kimura.masao@test.co.jp|{PLAIN}xxxxxxxx endo.yoko@sample.com|{PLAIN}xxxxxxxx sato.masahiko@sample.com|{PLAIN}xxxxxxxx takahasi.naoko@test.co.jp|{PLAIN}xxxxxxxx kato.hiroshi@sample.com|{PLAIN}xxxxxxxx ito.aoi@test.co.jp|{PLAIN}xxxxxxxx tanaka.taro@sample.com|{PLAIN}xxxxxxxx suzuki.hanako@test.co.jp|{PLAIN}xxxxxxxx
※docker-compose.yml ではメールサーバの hostname+domainname を mail.example.com と設定しましたが、アカウントには別のドメインを設定可能です。
docker-compose up -d
コマンドで起動した後、docker-compose down
で終了させます。
Webmail クライアント Rainloop の環境を構築する
プロジェクトの直下に docker/rainloop/data ディレクトリを作成します。
docker-compose.yml を以下のように変更します。
# Webmail クライアント rainloop: image: hardware/rainloop container_name: rainloop ports: - "8888:8888" volumes: - ./docker/rainloop/data/:/rainloop/data
docker-compose up -d
コマンドで起動します。
http://localhost:8888/?admin にアクセスし、admin / 12345 でログインして設定します。
http://localhost:8888/ にアクセスし、tanaka.taro@sample.com / xxxxxxxx でログインできることを確認します。
動作確認
Tomcat を起動して、貸出希望書籍 CSV ファイルアップロード画面で CSV ファイルをアップロードしてからメールが届くことを確認します。
履歴
2019/01/05
初版発行。