SMTPサーバのPostfixを構築すると、必ずキューの再送間隔に戸惑うと思います。
そのため、やさしくキューの再送間隔に関して解説してみます。
簡易確認
maximal_queue_lifetime = 1d //1日で再送諦める minimal_backoff_time = 900s //900秒キューに入っているメールがあれば再送 maximal_backoff_time = 3600s //再送間隔のMAX queue_run_delay = 900s //キューをチェックする間隔 bounce_queue_lifetime = 1d //1日送信できなかったらエラーメールをFromに返す
詳細確認
中継メールサーバにてメールを送信したが、送信先と正常に通信ができない場合キューに入ります。そのあと、メールに入ったキューは以下の挙動となる。
1.約15分後(900秒)に送ってみる → ダメならキューに入る →minimal_backoff_time = 900s //900秒からスタート! 2.約30分後(1800秒)に送ってみる → ダメならキューに入る →minimal_backoff_time = 900s //2回目は約2倍の1800秒で再送する 3.約60分後(3600秒)に送ってみる → ダメならキューに入る →minimal_backoff_time = 900s //3回目は、更に約2倍の3600秒で再送する 4.約60分後(3600秒)に送ってみる → だめならキューに入る →maximal_backoff_time = 3600s //4回目は、更に約2倍の7200秒とならず、左記のパラメータの上限である3600sで再送し続ける 5.ひたすら60分間隔で再送して、1日経過(1d)したら送信を諦めてFromにメールを返信 →maximal_queue_lifetime = 1d //1日経過したら再送を諦める →bounce_queue_lifetime = 1d //1日経過したらエラーメールをFromに返す
再送のログを確認してみる。
//キューがないことを確認 # mailq Mail queue is empty //メールを送る # echo "本文_test mail" | mailx -s "タイトル_title" -S smtp=smtp://192.168.11.12 -r relay@test.local aaaabc@yahoo.co.jp //送信先(192.168.11.11)が落ちているため、配送されずキューに入っていることを確認 # mailq -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 3813B8AF7DB 508 Wed Dec 22 00:10:37 relay@test.local (connect to 192.168.11.11[192.168.11.11]:25: Connection refused) aaaabc@yahoo.co.jp -- 0 Kbytes in 1 Request. //設定通り再送しているかログから確認する、ID(3813B8AF7DB)でgrepすると良い # grep 3813B8AF7DB /var/log/maillog Dec 22 00:10:37 pop postfix/smtpd[4595]: 3813B8AF7DB: client=pop[192.168.11.12] Dec 22 00:10:37 pop postfix/cleanup[4599]: 3813B8AF7DB: message-id=<61c1ee6d.ZI26h7U5yvmqEWlg%relay@test.local> Dec 22 00:10:37 pop postfix/qmgr[4491]: 3813B8AF7DB: from=<relay@test.local>, size=508, nrcpt=1 (queue active) Dec 22 00:10:37 pop postfix/smtp[4600]: 3813B8AF7DB: to=<aaaabc@yahoo.co.jp>, relay=none, delay=0.08, delays=0.06/0.02/0/0, dsn=4.4.1, status=deferred (connect to 192.168.11.11[192.168.11.11]:25: Connection refused) Dec 22 00:40:02 pop postfix/qmgr[4491]: 3813B8AF7DB: from=<relay@test.local>, size=508, nrcpt=1 (queue active) Dec 22 00:40:17 pop postfix/smtp[5511]: 3813B8AF7DB: to=<aaaabc@yahoo.co.jp>, relay=none, delay=1781, delays=1765/0.05/16/0, dsn=4.4.1, status=deferred (connect to 192.168.11.11[192.168.11.11]:25: Connection refused) //00:10:37 にキューに入り、約30分後の00:40:17 に、再送していることを確認できる。