Archivemailを用いたメールボックスの清掃法Leverage OSS

Webメールに慣れてしまった方も多いだろうが、さして必要でもないメールの山に悩むのは昔からあまり変わっていない。あなたの貴重な時間を取り返すために、archivemailを使ってみよう。

» 2008年12月12日 07時30分 公開
[Shashank Sharma,SourceForge.JP Magazine]
SourceForge.JP Magazine

 今日、複数のメールアカウントを使っている人間も多いと思うが、自分で管理すべきメールボックスに、2度と開封することのない多量のメッセージを溜め込んだままにしてはいないだろうか。特に管理者アカウントあてに届けられるのは、自動送信されるイベント類の定期通知メールが多く、こうしたものは目を通すことがあるとしても、せいぜい1度だけ開いて終わるのが関の山のはずだ。こうした不要メッセージの山を手軽に処分したいと思うなら、本稿で紹介するarchivemailというツールの使用を検討すべきだろう。ここで行われるアーカイブ化処理は、ディスクスペースの空き容量を増やすと同時に、メールクライアントのパフォーマンス向上にも貢献するはずだ。

 archivemailの入手法にかんしては、たいていのディストリビューションのソフトウェアリポジトリに収録されているが、ソースのtarボールを入手して自力でインストールすることもできる。なお同プロジェクトのWebサイトにアクセスしてみると、1年前にリリースされたarchivemail- 0.7.2が最新バージョンとされているが、これは開発活動の中止を意味している訳ではなく、開発サイドの説明によると現在は次バージョンのリリースに向けて、新機能の追加、バグの修正、コードのスリム化といった作業が進行中とのことだ。

 archivemailの場合、IMAP、mbox、MH、Maildirフォーマットのメールボックスをサポートしている。してarchivemailで処理するメールボックスは、その正確なパスを指定しなくてはならない。例えばメールクライアントとしてEvolutionを使用しているなら~/.evolution/mail/local/Inbox.sbd/が、同じくThunderbirdの場合は~/.mozilla-thunderbirdにあるディレクトリが、デフォルト設定下のメールボックス用に使われているはずだ。ただし実際のメールボックスの格納位置は、メールクライアントの種類だけでなく各自のユーザー設定でも異なってくるものだが、デフォルト設定として各ユーザーのhomeディレクトリの下層に置かれるケースが多いことは覚えておいても損はしないだろう。いずれにせよ、archivemailを使用する際にはメールボックスの正確なフルパス指定が必要となるが、これを省略してメールボックスの名前だけを入力することも可能で、その場合はカレントディレクトリが適用される。

 メールボックスを指定したarchivemailをデフォルト設定下で実行すると、180日以上経過したすべてのメッセージが自動的にアーカイブ化される。この経過日数は-dコマンドオプションで変更でき、こうしたオプション類は「archivemail options mailbox」という構文で指定すればいい。例えば「archivemail -d 40 trip」を実行すると、指定メールボックスのtrip中にて受信後40日以上経過したメッセージ群を圧縮したファイルがtrip_archive.gzという名称で作成される。そして、ここでアーカイブ化対象となったメッセージ群は、メールボックスから自動的に削除されるようになっているのだ。

 同様に-Dオプションを用いると、先のような経過日数ではなく、明示的な日付指定によるarchivemailの制御もできる。例えば先のtripメールボックスにて2008年7月4日(July 4, 2008)以前のメッセージ群をアーカイブ化したければarchivemail -D '4 Jul 2008' tripと指定すればいい。

 こうした日付指定は、先のようなフォーマット以外にも'2008-07-04'や'4 July 2008'という表記が利用できる。その際の注意点としては、一重引用符で囲むことと、年の数字を4桁のフル表記にすることだ(archivemailは2桁の年表記は扱えない)。こうしたコマンドラインオプションの使い方に不慣れなうちは、-nというコマンドオプション指定でarchivemailを実行させてみればいいだろう。この-nオプションをつけた場合のarchivemailは、対象となるファイルを実際に処理する代わりに“当該オプションの指定下ではどのような処理が行われるか”という情報を表示してくれるのだ。以下の出力はこうしたドライランモードで、10月20日(20 October)以前のメッセージを処理させるよう指定した結果である。


$ archivemail -D '20 Oct 2008' -n trip:
trip:
    I would have archived 9 of 16 message(s) (1.2MB of 2.0MB) in 0.0 seconds

 デフォルト設定下のarchivemailは圧縮ファイルをメールボックスと同じディレクトリに作成するが、作成先をユーザー指定するには-oオプションを使用すればよく、例えば「archivemail -d 90 -o ~/mail-archives/ trip」というコマンドは、90日以上経過したメッセージ群を~/mail-archives/ディレクトリにアーカイブ化する。ただし指定された圧縮先ディレクトリが存在しなかった場合、archivemailからはエラーが出されるので、こうしたディレクトリは事前に用意しておかなくてはならない。

より高度なオプション指定

 archivemailにはより高度なオプション指定も用意されており、例えば、メールボックス中の未読メッセージは操作の対象外とする、指定サイズ以上のメッセージだけを圧縮対象とする、該当するメッセージ群を非圧縮モードでアーカイブ化する、といった追加オプションが利用できる。

 このうちメールボックス中の未読メッセージを除外させる指定は-uオプションで行う。

 特定サイズ以上の巨大メッセージだけを圧縮対象とさせる指定は-Sオプションにて行う。例えば「archivemail -d 60 -S 2 trip」というコマンドは、受信後60日以上経過した中でサイズが2Mバイト以上のメッセージだけをアーカイブ化させるという指定だ。

 あるいは、対象となるメッセージ群はアーカイブ化不要で削除だけを行いたいという場合は--deleteオプションを指定すればいい。つまり「archivemail -d 120 --delete trip」というコマンドは、受信後120日以上経過した全メッセージを対象に削除処理だけをしてくれるのだ。同様に、サイズが5Mバイト以上のメッセージを削除だけさせるには「archivemail -S 5 --delete trip」というコマンド指定をすればいい。

 最後に残された、該当するメッセージ群を非圧縮モードでアーカイブ化させるという指定は--no-compressオプションで行う。

 デフォルト設定下のarchivemailは圧縮モードでのアーカイブ化を施し、アーカイブ化された各ファイルにはmailbox_archive.gzという名称がつけられる。こうしたアーカイブ名は、-sオプションを用いることで、週、月、年の情報を追加させることもできる。例えば「archivemail -D '1 Jan 2008' -s _%Y trip」というコマンド指定では、2008年1月1日(January 1, 2008)以前の全メッセージがアーカイブ化されるが、ここで作成されるアーカイブはtrip_2007.gzという名前とされるのだ。アーカイブ名にはそのほかの情報を追加させることも可能だが、詳細についてはmanページを参照してほしい。

 当然ながら、こうしたarchivemailによるアーカイブ化や削除のプロセスも、cronジョブを用いた自動実行が行える。例えば、システムメッセージを月間ベースでアーカイブ化させるには、crontabに後記のようなエントリを追加すればいい。


0 0 1 * * archivemail -d10 /var/spool/mail/username

 これは毎月頭に、10日以上経過したメッセージをアーカイブ化させるためのコマンド指定だ。

 このようにarchivemailはシンプルなツールでありながら、所定の目的を過不足なくこなしてくれる。対象となるメッセージ群の指定に用いるパラメータの種類も充実しており、本来の機能であるメッセージ群のアーカイブ化や削除といった処理も、迅速かつ簡単に実行できるのだ。archivemailさえ用意しておけば、不要なメールメッセージの処分という分野において必要とされる作業の大部分に対処できるだろう。

Shashank Sharmaは、フリー/オープンソース系ソフトウェアの初心者向け記事の執筆およびLinux.comフォーラムボードの管理を行なっており、Apress社から刊行されている『Beginning Fedora』の共著者でもある。


Leverage OSS」では、あなたの仕事効率を劇的に改善してくれるオープンソースソフトウェアを一挙紹介。あなたの道具箱に忍ばせたくなる一品がきっと見つかるはずです。


Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ