Files
wiki/infrastructure/mail/software/postfix/deployment/docker-compose.md
T
2026-09-22 16:11:58 +02:00

2.4 KiB

PostfixのComposeプロジェクト

1. ディレクトリの作成

sudo mkdir -p /opt/postfix

sudo chown $USER:$USER /opt/postfix

cd /opt/postfix

2. compose.ymlの作成

compose.yml:

services:
  postfix:
    image: boky/postfix:latest
    restart: unless-stopped

    hostname: mail.unchioshi.net

    environment:
      TZ: Asia/Tokyo
      ALLOWED_SENDER_DOMAINS: unchioshi.net

    ports:
      - "127.0.0.1:2525:25"      
  • Dockerイメージはboky/postfix(送信用のSMTPリレーのイメージ)を利用
  • ALLOWED_SENDER_DOMAINSにはメールの送信元として許可するドメインを指定
  • コンテナのTCP 587番ポートをホスト側の2525番ポートに公開

3. コンテナの起動

docker compose up -d

4. 送信テスト

swaksをインストール:

sudo apt update

sudo apt install swaks

メール送信:

swaks \
  --server localhost \
  --port 2525 \
  --from notification@unchioshi.net \
  --to t.murate1124@gmail.com \
  --header "Subject: Postfix SMTP Test"
  --body "Hello from Postfix!"
  • --server <server> ... SMTPサーバの接続先
  • --port <port> ... SMTPサーバのポート
  • --from <source-address> ... 送信元メールアドレス
  • --to <target-address> ... 送信先メールアドレス
  • --header <header> ... メールヘッダー
  • --body <content> ... メール本文

補足:正引きと逆引きの対応を一致させ、PostfixがSMTP通信で名乗るホスト名も揃える

正引きと逆引きの対応:

tsubanyan@localhost:~$ dig +short mail.unchioshi.net A
46.250.255.203
tsubanyan@localhost:~$ dig +short -x 46.250.255.203
mail.unchioshi.net.
tsubanyan@localhost:~$ 
  • 対応が取れていない場合は適宜編集する
  • 正引きはゾーン情報を編集する
  • 逆引きホスト名は、サーバ側の管理画面から設定

Postfixのホスト名を合わせる

myhostname = mail.unchioshi.net
  • PostfixがSMTP通信で自身を識別する際のホスト名
smtp_helo_name = mail.unchioshi.net
  • 外部へのSMTP接続で使用するEHLO名
  • 通常smtp_helo_nameのデフォルト値は$myhostnameなので明示的に設定する必要はない

補足:SPF・DMARC対策

tsubanyan@localhost:~$ dig +short unchioshi.net TXT
"v=spf1 a mx ~all"
tsubanyan@localhost:~$ dig +short _dmarc.unchioshi.net TXT
"v=DMARC1; p=none"
tsubanyan@localhost:~$ 
  • ゾーン情報を編集して設定