素歩人徒然 メールソフト データの復元作業
素歩人徒然
(50)

メールソフト


── データの復元作業

 とうとう、メールソフトを取り替えることにした。
 これまでメールソフトといえば、Outlook Express(OEと略す)を使い続けてきた。OEといえばウイルスメールの被害を受けやすい面があり、特別な対策が必要なソフトウェアである。その悪名高きOEをずっと使い続けてきたのは、勤め先で扱う出荷製品の中にOEが含まれていたので、職場では品質検査も兼ねて自ら率先して最新版を使うのが当然という雰囲気があったからだ。会社で使っているから自然に家でも同じ製品を使ってきた。ただそれだけのことである。

 会社を退いて教師になってからも、学生がよく使っている物を同じように使うのが(質問等にも答えられるし)望ましい姿だと思ってきた。もちろん、もっと安全なメールソフトをシェアウェアで手に入れていたが、ウイルス対策には疎い妻がメールするときの専用メーラーとして利用していただけで、普段は私は使っていなかった。

 ある日、新聞の日曜版に載っていた連載記事でソフトウェア紹介の欄を読んでいると、今人気のメールソフトとして“EdMax”という名のソフトウェアが紹介されていた。その作者の名前を見て驚いた。数年前会社を辞めたM君ではないか。課長という管理職よりも技術者として生きたいと、一人でこつこつとソフトウェア開発をする道を仕事に選んだのである。在職中に彼が作ったパソコン用のワープロソフトは素晴らしいできばえのもので私は長い間それを愛用してきた。その彼が作ったメールソフトなら、これは何をさておいても使わずばなるまい。

 早速、彼のホームページ(*1)からダウンロードして使ってみることにした。ホームページ上にはエディタ等いろいろなソフトが掲載されていた。知らない間に随分と成果を上げているようである。うれしいことだ。メールソフトの方はシェアウェア版の他にフリーウェア版も用意されていた。とりあえず両方使ってみたが、フリーとはいえ随分と豊富な機能が用意されているようで、私にはフリーウェア版の方で十分のような気がした(これじゃ彼も儲からない。申し訳ないことだ)。
 彼に激励のメールを送ったところ「売れるソフトを作るのは難しいです」と言ってきた。これほど豊富な機能のソフトウェアを気前良く無料で公開してしまったのでは、儲からぬが道理であろう。彼の人柄がよく出ているように思われた。

【注】(*1)http://www.edcom.jp/

 メールソフトというものは毎日使うものなので慣れが肝心である。始めの内は慣れなかったが、使っている内に段々とEdMaxの良さが私にも分かってきた。「巡回機能」とか「サウンド機能」とか、複数のメールアドレスを使い分けている者には結構便利な機能を沢山備えている。痒いところに手が届くように細かい指定ができて、メールソフトも随分と技術進歩してきているのが分かる。MS社もこれに気が付いたら(例によって)直ぐ真似をすることであろう。

 さて、このようにしてメールシステムを完全に切り換えてしまうと、今までOE上にたくわえてきた受信メールの全体をできるだけ新メールシステムの方に移行させたくなるのが人情であろう。そこでOEのエクスポート機能を使ってメッセージデータを取り出そうと試みたが、どうもやり方がよく分からない。もともとMS社は自社製品のことしか考えないからOEからエクスポートできる対象は Microsoft Outlook か Microsoft Exchange しか考えていないのではなかろうか。

 そこで仕方なく、今度はEdMaxのインポート機能を直接使ってみることにした。個々のメールならそのままインポートできるようである。複数のメールのかたまり(*2)を直接インポートしてみると一見うまくいっているようだが、よく見てみると日付情報が正しく読み取れていない。すべてインポートした今日の日付になってしまうのである。タイトルも空白が多い。これでは困る。更に悪いことにメールの文面にノイズが入ってしまってうまく変換ができていないことが分かった。

【注】(*2)OE上のフォルダに集められた複数のメールは、*.dbx という名の一つのファイルになっている。

 このようなことがあるから私は特定のアプリケーションに依存した形で自分の大切なデータを長期にわたって保管する気になれないのである。
 私は昔から大切なデータ類は必ず純粋なテキスト表現のままで保存することにしてきた。メールのメッセージデータも例外ではない。変な制御コードの類いさえ埋め込まれなければ、後でどうにでも復元できると信じるからである。私にメールを送ってきた人の中には、逆にそのデータが紛失したから以前送ったメールの写しがもし保管されていたら提供してくれないかと要請してくる人がいるくらいである。

 この大切にしているテキストデータ群を利用してメールシステム上に古いデータを復元してみることにしよう。私がそう決心した理由は、EdMaxのデータが純粋なテキスト情報のみの形で保存されているらしいことが分かったからである(この点はまだ確かではない。少なくとも初期状態ではそのようになっている)。これは私のポリシーとも合致している。そこで、EdMax内でのメールの保存時の内部構造を調べてみることにした。

 それによると、データの先頭部分に以下の情報が必要である。

  "From: ‥‥"
  "Date: ‥‥"
  "To: ‥‥"
  "Subject: ‥‥"

 メールで今までよく使っていた次のような日本語表現では受け付けられない。

  "送信者 ‥‥"
  "表題 ‥‥"
  "日時 ‥‥"
  "宛先 ‥‥"

 これらの変更はエディタの編集機能レベルで(それをマクロ記述して用いれば)簡単に対応できそうである。しかし日時の表現が、

  "Tue, 20 May 2003 23:46:18 +0900"

のような形式に限定されているのが問題だ。月を英語の簡略表示(3桁)にしなければならないのも面倒だ。日付表現を過去のメール類から調べてみると

  2003年5月20日
  2003-5-20
  5/20/2003
  98年5月20日
  5/20/98
  ‥‥

といった様々な表現が散見される。ここには西暦2000年問題も含まれることが分かる。これらの変換は一筋縄ではいかない。Perl言語の登場を願うしかあるまい。Perlプログラムを作っていろいろとテストしてみた結果、曜日はなくてもよいが日付の後ろの時刻表現が存在していないとうまく読み取ってくれないことも分かった。過去のメール類には、日付はあるが時刻表現がないものが多い。そういったものには適当に偽の時刻を追加することにした。

 その結果、まずテキストエディタで大雑把な変更を施した後、Perlプログラムでより細かな日付部分の表現の変換作業を行い、最後にエディタを用いた簡単な手作業で微調整するという3段階の作業を経て無事移行手続きが完成したのである。
 微調整とは、余分な改行コードや空白コードばかりの行が先頭部分に残ったりすることがあるのでそれを取り除いたり、"To: ‥‥"が沢山あって、その後に"Subject: ‥‥"があると表題が認識されないことがあるので、そのような場合は"Subject: "部分を前に移動するなりの調整を行うのである。あとは個々に変換移行の作業を残すばかりである。やれやれ。

 久しぶりに頭を使って汗をかきつつプログラミング作業にいそしみ、少しばかり楽しい時間を過ごすことができた。ついでに復元したばかりの昔の掲示板全盛時代の頃の記録を開きながら、あの頃の議論とやり取りの部分を読み返したりしている。なるほど、こんなことがあったっけ‥‥。うむ、うむ、懐かしい懐かしい。素晴らしいテキストビュアーが手に入ったようである。■