| Works
送信専用のPostfix設定
監視システムによる障害通知やスクリプトの成否通知のため、送信専用MTAの設定を繰り返していたので備忘録。
ローカルのみで使うことが前提です。
MTAをホスト毎に作らなくても…とは思ったのですが、既存のポリシーを踏襲するとこうなったのは余談です。
やはり、フル機能のメールサーバはちゃんとしたサービスを利用するのがいいですね。メールサーバの勉強ならともかく、運用のあれこれを気にするリソースは他に振り分けたいので。
例によってCentOSまたはRHEL 6/7を使うことがほとんどなので、ディストリビューション標準のPostfixを使う。
設定は以下の通り(デフォルトからの変更のみ記載)
まずは基本の"/etc/postfix/main.cf"
# ホスト名
myhostname = host.example.com
# ドメイン
mydomain = example.com
# 送信メールのドメイン名
myorigin = $mydomain
# メール中継を許可するネットワーク(ローカルホストのみ)
mynetworks = 127.0.0.1
# メールの送信先(特定のMTAへ転送)
relayhost = relay.example.com:587
# 上記送信先MTAの認証情報(SMTP認証)
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
# ローカルメール配送を無効化
local_transport = error:local delivery is disabled
続いてメール配送サービスの定義"/etc/postfix/master.cf"から"smtp"と"local"をコメントアウト。
#smtp inet n - n - - smtpd
#local unix - n n - - local
"main.cf"中で定義したファイル"/etc/postfix/authinfo"にSMTP認証情報を記載。
relay.example.com:587 mailuser:password
上記のファイルからハッシュ化したDBを作成するため"postmap"コマンドを実行。
# postmap /etc/postfix/authinfo
あとはサービス起動(または再起動)で完了。