Postfixの設定もろもろ
思い込み多々あり。
http://www.postfix-jp.info/trans-2.3/jhtml/postconf.5.html
<再送まわり>
minimal_backoff_time
maximal_backoff_time
maximal_queue_lifetime
bounce_queue_lifetime
queue_run_delay
ここらへんの設定がいる模様。
たとえば、
minimal_backoff_time = 60s
maximal_backoff_time = 600s
maximal_queue_lifetime = 1800s
bounce_queue_lifetime = 1800s
queue_run_delay = 60s
※「s」は秒
した場合、
最初再送に失敗したら、defferedキューに入って、queue_run_delayごとにdefferedキューがキューをスキャン。
スキャンしたときにキューにあるメールの時間がminimal_backoff_timeをこえてたら再送。
再送失敗してしまったら、今度はdefferedキュースキャンしたとき、minimal_backoff_timeの倍の時間後に再送開始。
再送失敗してしまったら、今度はdefferedキュースキャンしたとき、minimal_backoff_timeの倍の倍の時間後に再送開始。
再送失敗してしm(ry
って感じでmaximal_backoff_timeをこえるまで繰り返し。
こえた後はmaximal_backoff_timeの間隔で再送。
最終的にmaximal_queue_lifetimeをこえたら再送終了、bounce_queue_lifetimeの時間をこえたらBounce扱いで送信者にエラーメールで返る、っという感じ。
実際にテストした結果はこのような感じ。
May 29 18:47:16 testserver postfix/qmgr[4833]: 9D7FE1D0051:from=<root@test.hogehoge>, size=293, nrcpt=1 (queue active) May 29 18:47:16 testserver postfix/smtp[4847]: 9D7FE1D0051:to=<test@hogehoge.jp>, relay=none, delay=107, delays=107/0.01/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=hogehoge.jp type=MX: Host not found, try again) May 29 18:49:16 testserver postfix/qmgr[4833]: 9D7FE1D0051:from=<root@test.hogehoge>, size=293, nrcpt=1 (queue active) May 29 18:49:16 testserver postfix/smtp[4854]: 9D7FE1D0051:to=<test@hogehoge.jp>, relay=none, delay=227, delays=227/0.01/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=hogehoge.jp type=MX: Host not found, try again) May 29 18:53:16 testserver postfix/qmgr[4833]: 9D7FE1D0051:from=<root@test.hogehoge>, size=293, nrcpt=1 (queue active) May 29 18:53:16 testserver postfix/smtp[4865]: 9D7FE1D0051:to=<test@hogehoge.jp>, relay=none, delay=467,delays=467/0.01/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=hogehoge.jp type=MX: Host not found, try again) May 29 19:01:16 testserver postfix/qmgr[4833]: 9D7FE1D0051:from=<root@test.hogehoge>, size=293, nrcpt=1 (queue active) May 29 19:01:16 testserver postfix/smtp[4885]: 9D7FE1D0051:to=<test@hogehoge.jp>, relay=none, delay=947, delays=947/0.01/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=hogehoge.jp type=MX: Host not found, try again) May 29 19:11:16 testserver postfix/qmgr[4833]: 9D7FE1D0051:from=<root@test.hogehoge>, size=293, nrcpt=1 (queue active) May 29 19:11:16 testserver postfix/smtp[4907]: 9D7FE1D0051:to=<test@hogehoge.jp>, relay=none, delay=1547, delays=1547/0.01/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=hogehoge.jp type=MX: Host not found, try again) May 29 19:21:16 testserver postfix/qmgr[4833]: 9D7FE1D0051:from=<root@test.hogehoge>, size=293, nrcpt=1 (queue active) May 29 19:21:17 testserver postfix/smtp[4928]: 9D7FE1D0051:to=<test@hogehoge.jp>, relay=none, delay=2147, delays=2147/0.01/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=hogehoge.jp type=MX: Host not found, try again) May 29 19:21:17 testserver postfix/qmgr[4833]: 9D7FE1D0051: from=<root@test.hogehoge>, status=expired, returned to sender May 29 19:21:17 testserver postfix/qmgr[4833]: 9D7FE1D0051: removed
18:47:16⇒配信開始 minimal_backoff_time(60s)すでに2倍から開始
↓ +2
18:49:16⇒再送1回目
↓ +4
18:53:16⇒再送2回目
↓ +8
19:01:16⇒再送3回目 maximal_backoff_time(600s)をこえたので、これ以降600sずつ
↓ +10
19:11:16⇒再送4回目
↓ +10
19:21:17⇒再送5回目 maximal_queue_lifetime(1800s)をこえたので
Bounce扱いでキューから削除
<配送まわり>
smtp_destination_concurrency_limit
配送先ごとの並列送信数
smtp_destination_recipient_limit
1セッション内に配送するメールの数
特定のあて先ドメインごとに上記設定を反映も可能。
たとえば、docomo.ne.jp宛てのメールだけ並列送信なしで1セッション1通のみ送信とかしたい場合。
master.cfに
docomo-smtp unix - - n - 1 smtp
-o smtp_destination_concurrency_limit=1
-o smtp_destination_recipient_limit=1
とか追加。
で、transportファイルなどを用意
# postmap transport
っと実行したら、transport.dbが更新(新規作成)される。
main.cf内に、
transport_maps = hash:/etc/postfix/transport
を記述
で、リロード
/etc/rc.d/init.d/postfix reload
とか。
ちなみに、docomo.ne.jpあてのメールを別サーバーにリレーさせたいのなら、
を、
docomo.ne.jp docomo-smtp:[192.168.0.100]
IPやホストを書く場合、[]で囲ってあげにゃだめ。
とかとか。