はじめに
CentOS7 のデフォルトのメール送信サーバー (MTA) は Sendmail です。これを Postfix に置き換えます。ホストのローカルから外部へメールを送信したときの送信元ホスト名(ホストパート、@より後ろの部分)もカスタマイズします。
インストール
標準リポジトリからインストールできます。また、簡単なメール送信の動作確認で mail コマンドが使えるように、mailx パッケージもインストールしておきます。
$ sudo yum install postfix mailx
基本設定
Postfix がメール送信サーバーとして外部のメールサーバーに提示するホスト名は、デフォルトでは CentOS のローカル名になります。例えば、CentOS のホスト名が「host1」の場合、「host1.localdomain」が外部のメールサーバーに提示されます。
また、このホストのローカルから直接メールを送信する際も、送信元メールアドレスのドメインパート部分に適用されます。
もし、この名前とは別に、メールサーバーあるいはアプリケーションサーバーらしいホスト名、例えば「smtp.example.com」や「app.example.com」などにしたい場合は、下記のように設定を調整します。
/etc/postfix/main.cf
(75行目付近、メール送信元として外部のメールサーバーに提示するFQDN)
myhostname = smtp.example.com
(98行目付近、コメントアウトを外す)
myorigin = $myhostname
MTA 切り替えと Postfix 起動
MTA を Sendmail から Postfix に切り替えます。また、OS 起動時に Postfix が起動するようにします。
(MTA切り替え)
$ sudo alternatives --config mta
2 プログラムがあり 'mta' を提供します。
選択 コマンド
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail
2 /usr/sbin/sendmail.postfix
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
(MTA確認)
$ sudo alternatives --config mta
2 プログラムがあり 'mta' を提供します。
選択 コマンド
-----------------------------------------------
* 1 /usr/sbin/sendmail.sendmail
+ 2 /usr/sbin/sendmail.postfix
Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
$ sudo systemctl stop sendmail
$ sudo systemctl start postfix
$ sudo systemctl disable sendmail
$ sudo systemctl enable postfix
動作確認
このホストから、外部のメールサーバー宛にメールを送信してみます。もし可能であれば、送信先のメールサーバーのメールログも合わせて確認してみてください。
(メールを送信してみる)
$ mail -s "transport test" user@other.example.com
To user@oher.example.com
This is a test mail.
from user@smtp.example.com
.
EOF
(メールログを確認してみる)
cat /var/log/maillog
(可能であれば、送信先のホストでもメールログを確認してみる)