postfix 2.3.x の設定

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 と同じです。

コメントを残す