2012年06月19日(Tue) いい天気かと思うと霧雨が降っている [長年日記]
● [memo] ある時間の範囲に届いたメールをmuttで消す
職場で使っているGMailのPOPサーバの動作がなんだか不安定だと思っていたら、 fetchmailさん、 ある晩どばっと3年ほど前のメールからとってきてくれました。 やれやれ。 この晩に届いたメールだけ捨てたいので試行錯誤した結果をメモしておきます。
要らないメールの最初と最後を特定する。 /var/log/mail.logを見て、 3年前の重複して届いたメールのMessage IDをメモしました。 その一通前に受け取ったメールのMessage IDもメモをして、 そのメールがもう一度届いていることを確認しました。 一部ローカルなマシンのcronからのメールも含まれてしまいますが、 メールスプール中の、 この2つのMessage IDのメールとその間にあるメールが重複しているものとして 捨てることにします。
まず、.muttrcなどMuttの設定ファイルを編集して、 一時的に起動時にメールにタグをつけるのを止めるようにしておきます。
Inboxが表示されたら(今回は35,000通ほど来ていたのでしばらくかかりました)、 :set sort=mailbox-orderします。 これで表示がスプールと同じ順番になります。
次に、先ほどメモしたおいたMessage-IDを、/ ~i <Message-ID>して探し、 Inbox内での番号をメモしておきます。
メモしておいた番号を使って、T ~m <最初の番号>-<最後の番号>して、 消したいメールにタグを付けます。
タグを付けたメールを、;dして、消去します。
やれやれ。もうこの手順が必要になることがありませんように…
最近のツッコまれどころ