はじめに
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 (可能であれば、送信先のホストでもメールログを確認してみる)