LoginSignup
3
4

More than 3 years have passed since last update.

受けたメールをすべて捨てるSMTPブラックホールサーバの作り方③ - Dockerを使う

Last updated at Posted at 2019-08-05

前回の記事で予告した通り、今回はSMTPブラックホールサーバをDockerで作る方法を紹介します。

*Docker自体はインストールされている状態からスタートです。

Docker build用のディレクトリ準備

# mkdir testdir

このtestdirの下に、以下のファイルを準備していきます。

Dockerfile
main.cf
master.cf
run.sh

Dockerfileの準備

FROM alpine:latest

RUN apk --update add postfix
    && rm -rf /var/cache/apk/*

ADD main.cf /etc/postfix/main.cf
ADD master.cf /etc/postfix/master.cf
ADD run.sh /run.sh

ENTRYPOINT ["/run.sh"]

main.cfの準備

前回のmain.cfファイルをコピーして使います。defaultから変わった項目は以下のとおり。

compatibility_level=2 (前回と違い、この項目を入れます)
myhostname = example.com
mynetworks = 0.0.0.0 (今回は制限なしにしますが、注意してください)
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
local_recipient_maps = 

master.cfの準備

前回のmaster.cfをコピーして使います。defaultから変わった項目は以下のとおり。

smtp      inet  n       -       n       -       -       smtpd
  -o content_filter=discard:
  -o smtpd_client_restrictions=permit
  -o smtpd_recipient_restrictions=permit,reject

run.shの準備

以下のようなスクリプトrun.shを書きます。

#!/bin/sh

postfix start

run.shに実行権限を与えます。Dockerfileの中に書いてもOKです。

# chmod 777 run.sh

Docker build

必要なファイルの準備が終わりましたので、Dockerをbuildします。タグはtestとします。

# docker build -t test .

Docker run

Dockerを立ち上げます。

# docker run --rm -i -t -p  25:25 test

確認

docker psコマンドでこのDockerが上がったことが確認できます。

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                NAMES
6d6d66d24db2        test                "/run.sh"           7 seconds ago       Up 7 seconds        0.0.0.0:25->25/tcp   vibrant_mccarthy

netstat -nlpコマンドでこのDockerが25番Portを上げていることが確認できます。

tcp6       0      0 :::25                   :::*                    LISTEN      31919/docker-proxy-

telnetコマンドで接続するとpostfixがバナーを返してくれます。

# telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 example.com ESMTP Postfix

これでDockerを使ってローカル環境にメールサーバを立ち上げることに成功しました。Dockerなので色んな環境で使えて便利です。

追記: Dockerhubに公開しました (2019.8.6)

このDocker imageをDockerhubに公開しました。
docker pullして使ってください。

docker pull qualitiaco/smtpblackhole

*関連記事
受けたメールをすべて捨てるSMTPブラックホールサーバの作り方①
受けたメールをすべて捨てるSMTPブラックホールサーバの作り方②
受けたメールをすべて捨てるSMTPブラックホールサーバの作り方③ - Dockerを使う

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4