up_l dmy up_r
dmy home dmy dmy dmy

●qmailのqueue管理(queue-admin)●


以前、体調不良で会社を休んで寝ていた時に、会社から「メールが来なくなった」と突然電話が掛かってきました。
仕方なく自宅から会社のメールサーバーにログインして調べてみたところ、queueに3万通以上ものメールが溜まっていました。
元々スペックの低いサーバーで処理が遅いとは言えこの数にはさすがに驚きました。^^;
qmailに付属している「qmail-qread」でどこからメールが来ているのか調べてみたところ、
ほとんどのメールが同じの所からのリターンメールであることが分かりました。
しかし会社のサーバーから同じ所にそんなにメールを出すことは有り得ないので、
恐らく配送元のサーバーにスパムか何かを送りつけて、リターンをウチの会社のサーバーにしたのではないかと推測されます。
っといろいろ考えている間にもどんどんqueueは膨大する一方なので
queueから特定のメールだけを削除できる物が無いか探してみたところ、
qmHandleというのがあることを知りここを参考に早速使ってみましたが、あまり効率が良くない・・・(ーー;

というわけで急遽私の方で作ったのがqueue-adminです。
queue-adminはperlで作成しております。
当初は上記理由により緊急で作成したものなので配布までは考えていなかったのですが、
自宅ではPostfixを使用しているし、会社でも今後あまり使用することはないかな?と思い、
今回オプション等を追加して配布することにしました。

■queue-adminの入手

> wget http://cmf.ohtanz.com/download/queue-admin.txt
> mv queue-admin.txt /var/qmail/bin/queue-admin
> chmod 755 /var/qmail/bin/queue-admin

詳細は”/var/qmail/bin/queue-admin”を実行するとヘルプが表示されますのでご覧下さい。

■使用例

1.queueに溜まっているメールのリストを表示

> /var/qmail/bin/queue-admin --ls

2.キュー番号「1111111」「2222222」のメールを表示

> /var/qmail/bin/queue-admin --cn 1111111 2222222

3.Toヘッダーに「aaa@example.com」「bbb@examle.com」が含まれるメールを削除。

> /etc/rc.d/init.d/qmail stop
> /var/qmail/bin/queue-admin --dt aaa@examle.com bbb@examle.com
> /etc/rc.d/init.d/qmail start

4.Subjectヘッダーに「test1」「test2」が含まれるメールを表示

> /var/qmail/bin/queue-admin --ss test1 test2

5.メール本文に「test1」「test2」が含まれるメールを表示

> /var/qmail/bin/queue-admin --sb test1 test2

▲TOP

dmy
low_l dmy low_r