Postfixで未配信メールの確認

3月 15, 2010

メールが停滞している、なんか様子が変、って時は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で以下のパラメータにより変更可能。
(単位は日)

bounce_queue_lifetime = 3


関連記事
メールキューとメールボックス
Postfixの設定

Categories: Postfix

No Responses so far | Have Your Say!

Comments are closed.