2015年11月21日土曜日

Postfixで未配信確認





Postfixで未配信メールの確認



メールが停滞している、なんか様子が変、って時はMTAに関らず/var/log/maillogの確認。(追記:Postfixだったら # postqueue -p の方が話が早いかも)
その中でbonce、deferredなどのステータスに注目。これらは配送されていないメールのステータスとなる。
status=sent 配送OK
status=bounce 配送NG
status=deferred 一時的に配送できなかったがリトライ
deferredステータスのメールはキューの保持期間において配送をリトライし続けるが、内部に配送不可能な原因がある場合は当然何度やっても送信されない。
/var/spool/postfix/deferred/ディレクトリ配下を見てみると、数字やアルファベット大文字一文字のディレクトリがある。この名ディレクトリ内にdeferredメールが格納されている。(キューIDがファイル名となっている)この中身を確認したかったら普通にcatやlessで見ることも可能だが、改行されていないので見づらい。以下のようにpostcatコマンドを利用すると改行して出力してくれるので分かりやすい。
# postcat -q [キューID]
deferredメールキューを個別に削除するには以下のようにする。
# postsuper -d [キューID]
すべて削除するには、以下のように。”ALL”は明示的に大文字にしないといけないらしい。
# postsuper -d ALL deferred
削除できたかどうか、 postqueueでキューの状態を確認してみよう。
# postqueue -p
Mail queue is empty
もちろん、メールキュー停滞の根本原因を取り除くことも忘れずに。

ついでに、メールキュー停滞期間変更についても。送信リトライを続ける停滞期間はデフォルトで5日間らしいが、main.cfで以下のパラメータにより変更可能。(単位は日)
1
bounce_queue_lifetime = 3

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。