LoginSignup
26
31

More than 5 years have passed since last update.

Dockerで送信専用メールサーバーなうに使っていいよ。

Last updated at Posted at 2019-01-27

dockerのメール送信ニーズを解決します。

docker pull takeyamajp/postfix

このコンテナはPostfixのTLS暗号化通信をサポートしているため、業務用途にも安心して使えます。
ユーザー or 他のコンテナ — TLS(任意) —> このコンテナ — TLS(送信先が対応していたら) —> 送信先メールサーバー
http://www.postfix.org/TLS_README.html

また、Synology NASなどの通知用SMTPとして最適です。

以下、簡単な説明です。

FROM centos:centos7

...

ENV TIMEZONE Asia/Tokyo

ENV HOST_NAME smtp.example.com
ENV DOMAIN_NAME example.com

ENV MESSAGE_SIZE_LIMIT 10240000

ENV AUTH_USER user
ENV AUTH_PASSWORD password

EXPOSE 25
EXPOSE 587

このイメージについて

CentOS 7 の公式イメージをベースに作成しています。
https://hub.docker.com/_/centos

変数の値はコンテナを再作成しなくても変更できます。
例えば、コンテナをstopして最大メールサイズやパスワードを変更してから再startする事で新しい値が反映されます。

メール送信ログ

業務用途でなければ特に気にしなくて大丈夫です。

ログはDocker logsに出力されます。
Docker界のベストプラクティスに従って、コンテナ内でsupervisordを使ってrsyslog経由でログ収集しています。

タイムゾーン

日本で使用する場合は気にしなくて大丈夫です。

もし、海外で使用する場合はTIMEZONEの値を変更してください。
CentOSで使用可能な値をそのまま設定できます。

wikipedia : List of tz database time zones
https://en.m.wikipedia.org/wiki/List_of_tz_database_time_zones

ホスト名、ドメイン名

ホスト名とドメイン名をHOST_NAMEDOMAIN_NAMEに設定してください。

送信先のメールサーバーからこのメールサーバーの正当性を検証できるように、別途DNSサーバーに以下のレコードを登録する必要があります

  • Aレコード
  • SPFレコード

無料のツールでDNS設定が正しいかどうか確認できます。
インターリンク オンライン確認ツール
https://diag.interlink.or.jp/spf

カゴヤさんなど一部のレンタルサーバーでは、SPFレコードを自動的に設定してくれます。

このメールサーバーは送信専用で受信する機能がありません。そのため、MXレコードを登録する必要はありません。

自分への通知目的なら有料のドメインを取得しなくても、MyDNS.jpなど無料でサブドメインを割り当ててもらえるDDNSサービスで十分です。
https://www.mydns.jp
無料で取得できるドメイン名はスパム認定されている事が多いため、受信側でホワイトリストに登録した方が良いでしょう。
MyDNS.jpでも自動でSPFレコードを設定してくれるようです。

メールサイズ

添付ファイルなどでメールサイズが10MBを超える場合はMESSAGE_SIZE_LIMITの値を増やしてください。
単位はバイトです。

認証アカウント

アカウント情報をAUTH_USERAUTH_PASSWORDに設定してください。
実際の認証で使用するユーザー名はuser@example.comのようなメールアドレス形式になります。

@の右側(ドメイン名)の部分はDOMAIN_NAMEに設定した値になります。

このユーザー名はメールアドレス形式になっていますが、実際に送信されるメールには含まれません。
メール送信の承認だけに使用される情報です。

メーラーやメール送信プログラムなどで、任意の送信元アドレスを使用することができます。
(例: シンプルにno-reply@example.comとするか、目的別にwordpress@example.comとかerror-info@example.comなど使い分けても良いでしょう)

ポート番号

ポート25と587は同じ設定にしてあるため、どちらを使っても構いません。

もし、コンテナをhostネットワークで動かしたい場合、かつレンタルサーバーでポート25がブロックされている場合は、サブミッションポート587を使ってください。


以上です。
それでは良いメールサーバーライフを。

26
31
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
26
31