CentOS/RHELのデフォルトのMTA(Mail Transfer Agent) (またはSMTPサーバーとも呼びます)である postfix のインストールと設定について書きます。
■ postfix 2.3.x (yum配布版rpm)
CentOS6ならデフォルトで postfix 2.3 以上のバージョンです。
CentOS5ならyumだと違ったかもしれません。
postfix は、2.3 以上のバージョンを使いましょう。
理由は【mysql対応】しているからです。
mysql対応していれば後で postfixadmin (バーチャルメールボックスに対応させるツール) が使えるからです。
(postfixadminについては今回は割愛します)
(1) インストール
# yum install postfix
(2) ファイル構成
ファイルは複数ありますが、メインの設定は main.cf です。
サブミッションポートを使用可能にする場合、master.cf を修正します。
/etc/postfix/ access canonical generic header_checks main.cf ... メインの設定ファイル master.cf ... コマンドの拡張などの設定 relocated transport virtual ... バーチャル配送定義
(3) 設定
/etc/postfix/main.cf
#myhostname = 自ホスト名を指定 (/etc/sysconfig/networkのデフォルトでよいならコメントアウト) #mydomain = 自ドメイン名を指定 (/etc/sysconfig/networkのデフォルトでよいならコメントアウト) # ローカルからの送信元メールアドレス@以降がないとき myorigin = $myhostname ← ホスト名を付加 #myorigin = $mydomain ← ドメイン名を付加 inet_interfaces = all #inet_interfaces = localhost ← コメントアウトするのを忘れないように mydestination = $myhostname, localhost.$mydomain, localhost ← デフォルトでよし mynetworks_style = host ← ローカルマシンのみを信頼 home_mailbox = Maildir/ ← メールボックスをMaildir形式にする # # 以下を末尾に追加 # # SMTP-Auth smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination # dovecot-saslを使う場合 smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth # AUTHコマンドを認識できないメールソフトに対応 broken_sasl_auth_clients = yes # メールボックスサイズ制限 #mailbox_size_limit = 51200000 ← デフォルト50M mailbox_size_limit = 102400000 virtual_mailbox_limit = 102400000 # 受信メールサイズ制限 #message_size_limit = 10240000 ← デフォルト10M message_size_limit = 20480000 # hashバーチャルドメイン設定 virtual_alias_maps = hash:/etc/postfix/virtual
★ smtpd_sasl_type = dovecot とすれば、saslデーモンを起動しなくても SMTP認証に dovecot を利用できます。
この設定については、dovecot関連 の記事を参照。
/etc/postfix/master.cf
smtp inet n - n - - smtpd submission inet n - n - - smtpd ↑587ポートを使うにはこの submission のコメントを外す
起動・終了・再起動
# /etc/init.d/postfix start # /etc/init.d/postfix stop # /etc/init.d/postfix restart
自動起動設定
# chkconfig postfix on
■ バーチャル配送
main.cf 設定ファイルに
virtual_alias_maps = hash:/etc/postfix/virtual
という設定をすると、 mydestination 以外のドメイン(要はバーチャルドメイン)の場合、/etc/postfix/virtual ファイルの定義に従ってメールが配信されます。
/etc/postfix/virtual 定義方法
# バーチャルドメイン名 anything # メールアドレス 転送先の実ユーザ名(FTPユーザ名) mydomain001.com anything info@mydomain001.com mydom001_info hoge@mydomain001.com mydom001_hoge fuga@mydomain001.com mydom001_fuga zzzz@mydomain001.com mydom001_zzzz mydomain002.com anything info@mydomain002.com mydom002_info hoge@mydomain002.com mydom002_hoge fuga@mydomain002.com mydom002_fuga, mydom002_zzzz # メールアドレス 転送先メールアドレスも書けます tenso@mydomain002.com info@other.net, abc@another.com
virtual ファイルを保存したらpostmapにかけてhash化します。
# postmap hash:/etc/postfix/virtual
virtual ファイルの変更後 postfix は再起動不要です。
あと、
root などのエイリアスはシステムの /etc/aliases ファイルを使います。
これについては sendmail と同じです。