postfixで不要なメールキューを削除する
postfixで不要なメールキューを削除する
0.改訂履歴
1.はじめに
このドキュメントでは,postfixに溜まっている不要なメールキューを削除する手順を説明する. 不要なメールとは,ほとんどの場合SPAM
メールで,今回の場合はどこかで当サイトのドメインを騙ってSPAMメールをだした人が居て,そのエラーメールが当サイトに戻ってくるという仕組みであ
る.
特定の差し出し先からのDoS的なSPAMメールであればファイヤーウォール等で遮断する事で対処できるが,多数のメールサーバからのエラーメールなので,遮断できない.よって,不要なものはさっさと消す事で対応する.
2.mailqコマンドを使ってメールキューを確認する
mercury:~ ujpadmin$ mailq | head -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 023A5778BD7 26750 Wed Jun 10 01:56:26 MAILER-DAEMON (connect to NewYorkers.org[64.99.64.32]: Operation timed out) soumitra6834toufic@NewYorkers.org
0D4E4770BCE 8330 Mon Jun 8 07:26:30 MAILER-DAEMON (connect to mail.deleteddomains.com[169.20.37.64]: Operation timed out) tanjus@deleteddomains.com
0DB3C773D04 5943 Mon Jun 8 23:17:10 MAILER-DAEMON mercury:~ ujpadmin$
|
-
だいたい1つのキューが3行くらいで表されている.
- キューの数が今何個あるか調べる. 今回は,MALER-DAEMONユーザ宛に来ているものをしぼる.
mercury:~ ujpadmin$ mailq | grep MAILER-DAEMON |wc -l 72 mercury:~ ujpadmin$
|
- 72通もMAILER-DAEMONにメールが来ている事がわかる.
3.メールの中身が何かを確認する(postcat)
- メールの中身を確認するには,postcatコマンドにキューIDを与えれば良いので,mailqコマンドでキューIDを取り出してみる.
mercury:~ ujpadmin$ mailq |grep MAILER-DAEMON|head 023A5778BD7 26750 Wed Jun 10 01:56:26 MAILER-DAEMON 0D4E4770BCE 8330 Mon Jun 8 07:26:30 MAILER-DAEMON 0DB3C773D04 5943 Mon Jun 8 23:17:10 MAILER-DAEMON 15DEE772D40 15794 Mon Jun 8 17:36:24 MAILER-DAEMON 19483778AFD 4485 Wed Jun 10 01:34:44 MAILER-DAEMON 19D8B77397A 4448 Mon Jun 8 21:12:01 MAILER-DAEMON 1AE217803A5 8422 Thu Jun 11 23:43:17 MAILER-DAEMON 1B8AD784649 4706 Fri Jun 12 20:28:42 MAILER-DAEMON 20EC0772F7B 4544 Mon Jun 8 18:09:25 MAILER-DAEMON 22BF977F214 4721 Thu Jun 11 18:58:49 MAILER-DAEMON mercury:~ ujpadmin$
|
-
この先頭の11桁くらいの文字が,キューIDである.
- キューIDを指定して,中身を確認してみる.
mercury:~ ujpadmin$ postcat -q 22BF977F214 postcat: fatal: open queue file 22BF977F214: Permission denied mercury:~ ujpadmin$
|
mercury:/Users/ujpadmin root# postcat -q 22BF977F214 *** ENVELOPE RECORDS deferred/2/22BF977F214 *** message_size: 4721 162 1 0 message_arrival_time: Thu Jun 11 18:58:49 2009 named_attribute: message_origin=local named_attribute: trace_flags=0 sender: original_recipient: trieuj@attcanada.net recipient: trieuj@attcanada.net *** MESSAGE CONTENTS deferred/2/22BF977F214 *** Received: by ujp.jp (Postfix) id 22BF977F214; Thu, 11 Jun 2009 18:58:49 +0900 (JST) Date: Thu, 11 Jun 2009 18:58:49 +0900 (JST) From: MAILER-DAEMON@ujp.jp (Mail Delivery System) Subject: Undelivered Mail Returned to Sender To: trieuj@attcanada.net MIME-Version: 1.0 Content-Type: multipart/report; report-type=delivery-status; boundary="CDCD677F211.1244714329/ujp.jp" Message-Id: <20090611095849.22BF977F214@ujp.jp>
This is a MIME-encapsulated message.
〜略〜
Content-Transfer-Encoding: quoted-printable
Replica Rolex models of the latest Baselworld 2009 designs have just be= en launched on our replica sites. These are the first run of the 2009 mo= dels with inner Rolex inscriptions and better bands and cases. Only limited to 1000 pieces worldwide, they are expected to sell out wi= thin a month. Browse our shop
http://lamproad.com/
|
-
レプリカのロレックスって書いてあるので,SPAMだと確認できる.
4.postsuperコマンドでキューにある不要なメールを消す
- -dオプションを付けて,キューIDを指定する事で,キューにあるメールを消す事ができる.
mercury:/Users/ujpadmin root# postsuper -d 22BF977F214 postsuper: 22BF977F214: removed postsuper: Deleted: 1 message mercury:/Users/ujpadmin root#
|
-
キューの一覧を取り出し,指定したメッセージが消えてる事を確認する.
mercury:/Users/ujpadmin root# mailq |grep 22BF977F214 mercury:/Users/ujpadmin root#
|
- エラーメール以外でメールが即時おくれない環境というのはそうそうないので,いっその事全部消す.
- 全部消したい時はALLオプションを指定する.
mercury:/Users/ujpadmin root# postsuper -d ALL postsuper: Deleted: 71 messages mercury:/Users/ujpadmin root# mailq Mail queue is empty mercury:/Users/ujpadmin root#
|