postfixを利用する

 sendmailであるとかqmailとかと言ったSMTPDがあるけど、最近利用しているのはpostfixだ。
 開発環境で、全ての送信メール内容を確認したいという場面があるけど、postfixだとこれが簡単にできる。

yum install postfix
yum install cyrus-sasl

 ついでなのでSMTP Authも導入するため、Cyrus-saslも導入しておく。
>>/etc/postfix/main.cf

myhostname = wp.xn--ockc3f5a.com #ホスト名を設定
mydomain = xn--ockc3f5a.com #ドメインを設定
mydestination = wp.xn--ockc3f5a.com, xn--ockc3f5a.com, $myhostname, localhost.$mydomain, localhost #このホストが目的地であるドメインを設定
mynetworks = 127.0.0.0/8, 210.170.x.y #信頼するネットワークを設定(このアドレスから送信されたメールはリレー許可される)
home_mailbox = Maildir/ #メールをデフォルトのDovecotの位置に保管する
always_bcc = catch_all@wp.xn--ockc3f5a.com #これで全てのメールのBCCが送信される
smtpd_sasl_auth_enable = yes #SMTP Authを使用する
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,permit_auth_destination,reject_unauth_destination #メールの許可設定;信頼されるネットワーク、SMTP Authで認証されたユーザ、認証された宛先を許可し、認証されない宛先を拒否する
broken_sasl_auth_clients = yes #非標準のSMTP Authサポート通知を有効にする
smtpd_sasl_security_options = noanonymous #匿名ユーザからのメールを拒否する

 あとは、開発サーバで外にメールを送りたくない場合、

default_transport = local

 この設定をすると、a@yahoo.co.jp宛でもb@microsoft.com宛でも、a@localhostやb@localhostに配送しようとする(つまり、外へのメール送信が出来なくなる) そこで、

luser_relay =catch_all

でキャッチオールしてしまえばほとんどのメールを収集できる(存在するユーザ名宛のメールはそのユーザに配信される)
しかし、Postfixは不明なユーザ宛メールを拒否しようとするので

local_recipient_maps =

の設定でその拒否を解除する。

あとはサービス設定と起動

/sbin/chkconfig sendmail off
/sbin/chkconfig –add postfix
/etc/init.d/sendmail stop
/etc/init.d/postfix start

 こんな感じで、簡単な設定で色々使える。

(604)


カテゴリー: サーバ設定   パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です