パスワードを忘れた? アカウント作成
462730 journal

quabbinの日記: [postfix]キューから削除

日記 by quabbin

ちょっとした操作メモ。

手元の環境では、サーバはテストと本番に別れているが、このテスト側にちょっとした障害が起きていて、不要なメールが溜まってしまっていた。
この「不要」なメール、送信されてしまうとウザいことになるので、削除しようとしたのだが、ちょっと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

削除された。
なるほど。これは覚えておこう。

# どうでもいいけど、~ を見ているとジャンプしたくなるのは何故だろう。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...