Postfix

Postfixとは
SMTPサーバーの一種です。
CentOSではsendmailがデフォルトで付随してますが、安全性・パフォーマンスの観点からPostfixが使用されることが多くなっているようです。

■ インストール

postfixがインストールされているか確認
[root@example ~]# rpm -q postfix

インストールされていない場合はyumでインストール
[root@example ~]# yum install postfix

■ 設定
下記の項目を探して変更・追記します。
デフォルトの状態でコメントになっている項目は、コメントを外して設定する方が楽かもしれません。
今回の設定の目的は、管理用端末にログや状態メールを送信することです。
この通りの設定を行ってもWAN上にあるクライアントのメーラーなどから送信することは出来ません。
(なので多少無駄な設定もあります。)

設定ファイル:/etc/postfix/main.cf

# ホスト名をFQDNで指定
myhostname = host.example.com
# ドメイン名を指定
mydomain = example.com
# 「@」以下の補完する値
myorigin = $myhostname
# SMTPでの接続を待ち受けるインタフェース
inet_interfaces = localhost
# ローカルで受信するドメイン名
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# バナー情報の出力を指定
smtpd_banner = $myhostname ESMTP unknown

# ↓↓↓☆公開しないなら設定しなくても良い↓↓↓

# SMTPのVRFYコマンドを使用不可とする
disable_vrfy_command = yes

# SMTP-Auth
# SASLによるSMTP認証
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
# メールのリレー制限
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination


以下コンソールから実行します。
Postfixを自動起動するように設定
[root@example ~]# chkconfig postfix on

Postfixを起動
[root@example ~]# service postfix start

メール送信のテスト
[root@example ~]# mail -s testtitle test@xxx.xxx.xxx
testbody → 本文
. → 行頭に「.」を入力してEnter
Cc: → Ccを指定(空Enter)

# 別端末などでログを確認しながら確認を行うとやり易い
[root@example ~]# tail -f /var/log/maillog

ユーザ追加時にMaildir形式のメールボックスを自動生成するように
/etc/skel配下にディレクトリを作成
[root@example ~]# mkdir -p /etc/skel/Maildir/{new,cur,tmp}

パーミッションを変更
[root@example ~]# chmod -R 700 /etc/skel/Maildir/

使用するmtaをsendmailからPostfixへ変更
[root@example ~]# alternatives --config mta

2 プログラムがあり 'mta' を提供します。

選択 コマンド
-----------------------------------------------