Last modified: Fri Jan 7 09:42:58 JST 2005

MailArchive.pl
〜古いメールの整理をするスクリプト〜

[目次| ホーム]

ダウンロード

拡張子が pl なファイルは実行させようとしてしまうみたいですので '.pl' ではなく '_pl' に変更してあります。実際に利用するときにはリネームしてご利用下さい。

公開日 ファイル名 ファイルサイズ
2005/01/07 MailArchive.pl 11.1kB

説明

たまったメールの整理を支援します。1ファイル1メールの形式(MH 形式)のメールに 対応しています(私の環境である sylpheed のメールディレクトリにて開発を 行っています)。整理の手順は以下の通りになります。

  1. メールのディレクトリより古いメールを整理するディレクトリに移動する
  2. メールディレクトリの番号をふり直す
  3. 整理したメールをもとに MHonArc を用いて HTMLファイルを作成する

1. のメールの振り分けは、元のメールディレクトリのディレクトリ構造を 保ったまま保存をします。各メールは 1 から順の番号にふり直されます。 2. は 1. の過程で若い番号のメールファイルがなくなるため、フォルダ内の メールを新たに 1 から順に振り直しをします。もし、お使いのメールソフトの ファイル名がこのようなメールのファイル名ではない場合は、直接メールフォルダ からの整理をしないで下さい。その後のメールソフトに支障をきたす可能性が あります。3. にて、ブラウザでメールが見られるように MHonArc を用いて HTML 形式のファイルを作成します。

簡単な使い方

最も簡単な使い方を以下に紹介します。適当なディレクトリ (整理先が望ましい) にて

$ MailArchive.pl

を実行します(ただし $ はプロンプト)。~/Mail 以下のディレクトリ構造を 読み取り MailArchive.pl を実行したディレクトリに MailArchive.config, MailArchive.mrc の ファイルが作成されていると思います (もし、すでにある場合は一度消してから 実行してください。意図しない振り分けを実行する可能性があります!) 。次に MailArchive.config を自分の環境に合わせて編集します。以下に 例を挙げます。

# # <common>...</common> # mail_title HTML のヘッダにつけるタイトル # debug 現在未使用 # html_out yes: MHonArc を用いて HTML 作成 no: メールの振り分けのみ # mail_top_dir アーカイブ元のメールのあるディレクトリのトップ # html_dir HTML ファイルの出力先 # mail_dir 振り分けたメールの出力先 # mhonarc MHonArc のコマンドのありか # mhonarc_option MHonArc のコマンドラインオプション # copy_exe コピーコマンド (デフォルトは cp) # use_rename yes: Perl の rename を使用 no: 上記 copy_exe を使用 # link_type 0: threads.html にリンク 1: maillist.html にリンク # <common> mail_title = Mail Archive debug = no html_out = yes mail_top_dir = /home/hoge/Mail html_dir = /home/hoge/tmp/oldmail/html/ mail_dir = /home/hoge/tmp/oldmail/mail/ mhonarc = mhonarc mhonarc_option = -rcfile MailArchive.mrc copy_exe = cp use_rename = yes link_type = 0 </common> # # <directory>..</directory> # # 1桁目 yes: メールの振り分けを行う no: 行わない # 2桁目 振り分け開始日 (YYYYMMDD) # 3桁目 振り分け終了日 (YYYYMMDD) # 4桁目 振り分けを行うメールがあるディレクトリ # <directory> yes 19700101 20041231 /home/hoge/Mail/ML/computer/vine yes 19700101 20041231 /home/hoge/Mail/ML/computer/plamo yes 19700101 20041231 /home/hoge/Mail/inbox </directory>

最低限編集するべき個所は、黄色の部分(html_dir, mail_dir)です。 その結果、1月前までのメールが html_dir, mail_dir に整理されるように なります。振り分けられるメールディレクトリの一覧が <directory>〜 </direcotory> に書かれています。

以上を確認したら、再び

$ MailArchive.pl

を実行します。すると、メールの整理を開始します。html_dir ディレクトリに index.html が作成されますので、これをブラウザで見ることにより、HTML化 されたメールを読むことが出来ます。複雑な振り分けやオプションに ついては下に紹介をします。

MailArchive.config の編集

MailArchive.config を編集することにより、ディレクトリ毎にメールを整理する 期間を変えたりすることが出来ます。ここでは、すでに紹介した MailArchive.config の詳しい設定方法を紹介します。

<common>〜</common>

ここでは MailArchive.pl の動作環境について設定をします。以下は変数と その意味を紹介します。

変数名説明
mail_title HTML のヘッダ部分につけるタイトルを指定します。
debug 現在未使用
html_out yes: MHonArc を用いて HTML を作成。 no: メールの振り分けのみ ただし、no の場合も HTML 用のディレクトリは作成してしまいます。
mail_top_dir 振り分け元のメールディレクトリのトップ
html_dir 振り分けたメールの HTML ファイルを置くディレクトリのトップ
mail_dir 振り分けたメールを保存するディレクトリのトップ
mhonarc MHonArc コマンドを指定。パスが通っていない場合にはここでフルパスを 指定してください。
mohonarc_option MHonArc に渡すオプションを指定します。よく分からない場合は デフォルトのままにしてください。
copy_exe コピーコマンドを指定。
use_rename メールを振り分ける際、Perl の rename コマンドを使用する場合は yes、上述の copy_exe を使用する場合は no を指定。no とすることに より、元メールはそのままになります(番号はふり直されるとは 思いますが…)。
link_type HTML を作成した際、index.html からリンクするファイルを 0 の場合スレッド表示に、1 の場合日付順表示にする。

<directory>〜</directory>

ここでは実際に振り分けられるディレクトリについて設定をします。各行4列で 構成されています。それぞれ

です。整理を行いたくないディレクトリに対しては1列目を no とすればその ディレクトリは無視されます。また、上の例では 1970年1月1日から2004年 12月31日までのメールを振り分けます。あるディレクトリだけ別の期間に するということもここを設定することにより可能です。

MailArchive.mrc の編集

このファイルは MHonArc のテンプレートファイルです。書式が分かる人はこれを 編集することにより、作成される HTML ファイルをより柔軟に指定できます。

MailArchive.pl のコマンドラインオプション

MailArchive.pl にはいくつかのオプションが用意されています。以下にその 説明をします。

オプション デフォルト説明
-C <設定ファイル> MailArchive.config 読み込む設定ファイルが MailArchive.config 以外の場合に 指定します。
-c   設定ファイルを作成して終了します(振り分けは行いません)。 すでに MailArchive.config が存在していて、設定ファイルを新たに 作成したい場合にこのオプションをつけて実行します。
-h   オンラインヘルプを表示します。
-n   メールの振り分けの際、Perl の rename コマンドではなく copy_exe を利用します。MailArchive.config の use_rename = no に相当。
-i <振り分け元ディレクトリ> ~/Mail 整理するメールディレクトリのトップを指定します。
-o <振り分け先ディレクトリ> ~/Mail/tmp/oldmail 振り分け先メールディレクトリのトップを指定します。
-y <振り分け開始年> 1970 整理を開始する年を指定します。
-m <振り分け開始月> 1 整理を開始する月を指定します。
-d <振り分け開始日> 1 整理を開始する日を指定します。
-Y <振り分け終了年> 1月前の年 整理を終了する年を指定します。
-M <振り分け終了月> 1月前 整理を終了する月を指定します。
-D <振り分け終了日> 1月前の日 整理を終了する日を指定します。

注意点

メールが消失する可能性がありますので、最初はメールをまるごとコピーしてから 試したりして、確実に使えることを確認した上で実行してください。当然ですが、 このスクリプトにより大事なメールが削除されてしまっても作者は責任を取ることが 出来ませんので、その辺は自己責任で行ってください。

変更履歴

2005/01/07

cachu@cachu.xrea.jp