quabbinの日記: [postfix]キューから削除
ちょっとした操作メモ。
手元の環境では、サーバはテストと本番に別れているが、このテスト側にちょっとした障害が起きていて、不要なメールが溜まってしまっていた。
この「不要」なメール、送信されてしまうとウザいことになるので、削除しようとしたのだが、ちょっとgoogle頼みしてもやり方がわからなかった。
そこで、ドキュメントをいろいろひっくり返していたら、「一時的な問題」により配送されなかったメールは、"deferred"キューにたまり、再配送を待つらしいという記述を発見。
そこで、postfixを停止し、このdeferred_queueを削除して再起動し、再配送要求をしたところ、確かにキューから削除された。
[root@miracle4 ~] # /etc/init.d/postfix stop
postfix/postfix-script: stopping the Postfix mail system
[root@miracle4 ~] # rm -fv /var/spool/postfix/deferred/*/*
(snip)
[root@miracle4 ~] # /etc/init.d/postfix start
Starting postfix: [ OK ]
[root@miracle4 ~] # /etc/init.d/postfix flush
[root@miracle4 ~] # [ OK ]
え~。なんか[OK]を出す位置がずれている気がしますが…見なかったことにします。
と、一応の解決をみたところで、g_maedaさんからtwitterで指摘された。(ありがとうございます)
postsuper -d ALL deferred
が正しいやり方が正しいらしい。
忘れないように実験しようと思い、これを検証するやり方を考えてみた。
1. example.comに対してメールを送ると、MXが無いからdeferredになる
2. deferralったところでpostsuper -d
3. queueが空になっていることを確認
という手順でイケそう。
早速試してみる。
[root@miracle4 ~]# postqueue -p
Mail queue is empty
[root@miracle4 ~]# mail test@example.com
Subject: test
test
.
Cc:
[root@miracle4 ~]# postqueue -p
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
AF6C519183FB* 316 Tue Aug 5 12:01:20 root@xxxxxxxxx.jp
test@example.com
-- 0 Kbytes in 1 Request.
[root@GREEN116 ~]# ls -l /var/spool/postfix/*/AF6C519183FB
-rwx------ 1 postfix postfix 469 Aug 5 12:01 /var/spool/postfix/active/AF6C519183FB
activeにAF6C519183FBというIDでメールが登録されているのが確認できたので、deferredってくれるまで時間を置く。
[root@GREEN116 ~]# ls -l /var/spool/postfix/*/AF6C519183FB
ls: /var/spool/postfix/*/AF6C519183FB: No such file or directory
[root@GREEN116 ~]# ls -l /var/spool/postfix/*/*/AF6C519183FB
-rw------- 1 postfix postfix 311 Aug 5 12:04 /var/spool/postfix/defer/A/AF6C519183FB
-rwx------ 1 postfix postfix 469 Aug 5 2008 /var/spool/postfix/deferred/A/AF6C519183FB
[root@GREEN116 ~]# postqueue -p
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
AF6C519183FB 316 Tue Aug 5 12:01:20 root@xxxxxxxxx.jp
(connect to example.com[208.77.188.166]: server dropped connection without sending the initial SMTP greeting)
test@example.com
-- 0 Kbytes in 1 Request.
と、期待通りdeferredってくれた。
ここでキューからリクエストを削除する。
[root@GREEN116 ~]# postsuper -d ALL deferred
postsuper: Deleted: 1 message
[root@GREEN116 ~]# postqueue -p
Mail queue is empty
[root@GREEN116 ~]# ls -l /var/spool/postfix/*/*/AF6C519183FB
-rw------- 1 postfix postfix 311 Aug 5 12:04 /var/spool/postfix/defer/A/AF6C519183FB
削除された。
なるほど。これは覚えておこう。
# どうでもいいけど、~ を見ているとジャンプしたくなるのは何故だろう。
[postfix]キューから削除 More ログイン