98 lines
2.4 KiB
Markdown
98 lines
2.4 KiB
Markdown
# 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:~$
|
|
```
|
|
- ゾーン情報を編集して設定 |