Postfixの再送設定はデフォルトだとちょっとお人よしですよ

Postfixの再送設定はデフォルトだとちょっとお人よしですよ

[Postfix] 自宅メールサーバが迷惑メールサーバと思われているので、プロバイダ経由でメール配信する設定 でプロバイダ経由で送信するのはいいけど、メーリングリストのように一度に大量の相手にメールを送るときにサーバビジーとなり、メールキューが貯まる。

Mar 2 07:12:45 mail postfix/smtp[2760]: 23AAD323853: to=xxxxxxxx@xxxxx.co.jp, relay=smtp.hoge.com[xxx.xxx.xxx.xx]:587, delay=4343, delays=4281/31/0.12/30, dsn=4.0.0, status=deferred (host smtp.hoge.com[xxx.xxx.xxx.xx] said: 421 Server Busy, Please Try Later (in reply to MAIL FROM command))

時間が経てば再配送してくれるのだけれど、随分時間がかかる。
調べてみるとPostfixのデフォルトだとお人好しな設定の様子。

参考ブログ [Postfix] 再送設定 - abs(life) によると

失敗から再送までのpostfixの動きは、
送信失敗
deferredに入れる
queue_run_delay(1000秒)毎にdeferredをチェック
minimal_backoff_time(1000秒)を超えるメールがあれば送信
また失敗したらminimal_backoff_timeの倍(2000秒)の時間後に再送
またまた失敗したらminimal_backoff_timeの倍の倍(4000秒)の時間後に再送
maximal_backoff_time(4000秒)を超えるまでこれを繰り返し
maximal_backoff_timeを超えてしまったら、maximal_backoff_time間隔で再送
maximal_queue_lifetime(5日)を超えてしまったら再送をあきらめる
bounce_queue_lifetime(5日)を超えたら送信もとにエラーメール送信

とのことで、もうちょっと早めに再送して欲しい感じ。

$ sudo vi /etc/postfix/main.cf
### 設定ファイルの最後の方に追記

minimal_backoff_time = 100s
maximal_backoff_time = 600s
maximal_queue_lifetime = 24h
bounce_queue_lifetime = 24h
queue_run_delay = 100s

こんな設定に。

Postfixをリロードして設定を反映。

$ sudo /etc/init.d/postfix reload