私は友達が少ない上に、不精者なのでとりあつかうメイル量が少い。それでもなんやかやで2000通ほどメイルが溜っているので、整理せねばならなくなった。広告メイルはともかく私信メイルを捨てる度胸はないが、inboxに2000通はいかにも邪魔くさいからである。とりあえず、全てのメイルは ~/Mail/inbox/ に収まる設定である。それはそのままでよいが、その後、 From: または Subject: 欄に従って、捨てべきものは捨て、保存すべきものは保存するという方針とする。
この手の振り分けには、 procmail ではなしに mh/slocal を使うらしい。しかしながら mhキラーのはずの im で何とかならんかと思案していたが使用例が見付からない。単にマジメに探してないだけかもしれない。とりあえず、immv と imrm が使えそうであり、manには以下のようにある。
------------------------------------------------------------------------------ IMMV マニュアル 機能: メッセージの移動 オプション: --src=<folder> 移動元フォルダを指定する。 --dst=<folder> 移動先フォルダを指定する。 --link=<sw>on: 元のメッセージを残す。ハードリンクがあるシステムではハードリンクを、なければコピーを行なう。 --noharm=<sw>on: 動作の内容を表示するだけで、実際の移動は行なわない。 --verbose=<sw>on: 処理に関するさまざまな情報を表示する。 --debug=<sw>on: デバッグメッセージを表示する。 --help=<sw>on: ヘルプメッセージを表示する。 ------------------------------------------------------------------------------ IMRM マニュアル 機能:メッセージの trash フォルダへの移動 オプション: --src=<folder> 移動元フォルダを指定する。 --dst=<folder> 移動先フォルダを指定する。 --noharm=<sw>on: 動作の内容を表示するだけで、実際の移動は行なわない。 --verbose=<sw>on: 処理に関するさまざまな情報を表示する。 --debug=<sw>on: デバッグメッセージを表示する。 --help=<sw>on: ヘルプメッセージを表示する。 -------------------------------------------------------------------------------
如何にもさらりとしたmanである。文法すら書いてない。ついでにhelpも引くと、
--------------------------------------------------------------------------- imrm :: Internet Message Remove imrm version 20000228(IM140) Usage: imrm [options] +folder... msgs... * Note that +xxx is equivalent to --src=+xxx --------------------------------------------------------------------------- immv :: Internet Message Move immv version 20000228(IM140) Usage: immv [options] +folder... msgs... * Note that +xxx is equivalent to --dst=+xxx ----------------------------------------------------------------------------
要するに
imrm の方は
imrm +元フォルダ メッセージ
immv の方は
immv +宛先フォルダ メッセージ
とすればよいようだ。元フォルダはデフォルトでMail/inboxらしい。よい。
さて、振り分け条件のほうだが何も考えずにgrepを使うことにする。
cd ~/Mail/inbox immv +micmicML `grep -l "Subject:.*micmicML" *` immv +from/satani `grep -l "From: .*satani" * ` imrm `grep -l "From: Rakuten " * ` cd ~
これで
Subject行にmicmicMLとあるメイルは ~/Mail/micmicML/に
From行にsataniとあるメイルは~/Mail/from/sataniに
From行にRakuten とあるメイルは~/Mail/trashに
移動する。あとはこの調子でベタベタヅルヅルと書きならべたスクリプトをつくってできあがりである。気が向いたときにこのスクリプトを実行すればそれでよい。
該当メッセージがない場合、エラーメッセージが出るが無視して差し支えなかろう。
と思ったら、何故かAlico(保険屋)の広告メイルだけがうまくいかぬ。なぜかと思って 元メイルを見てみるに、
----------------------------------------------------- From: アリコジャパン <alico_info@freedom-network.co.jp> -----------------------------------------------------
なんと改行攻撃である。とりあえず
imrm `grep -l "alico_info" * `
でお茶を濁したが、もっと抜本的な解決策が望まれるなあ、うむ。
あいかわらず泥縄な今日この頃である。