SyntaxHighlighter
2006/01/23
MHからMaildirにしてIMAPへ
メールの量が多くなってきたので、MHから脱却し、MaildirにしてIMAPで読めるようにした。
これまでMewでメールを読んでいたが、メールの量が多くなるに連れて、
o 検索がしんどい
o ソートが遅い
o 振り分けが大変
などの不満が少しずつ生じてきていた。それに比べてGUIで操作可能なメーラは器用なことはできないが、操作が直感的で、最近のPCでは意外と動作が速かったりする。ただ、専用の保存形式は(インポート&エクスポートできるとしても)なにかが起こったときに直接対処できないのは不自由極まりない。
そこで、メールの保存形式及びアクセスをオープンなものとしクライアントソフトからの依存をなくすために、Maildir+IMAPを導入することにした。ところでMHのままでIMAPで読むこともできるのでMHから形式を変える必要はないのだけれども、Maildirのほうがファイルの消失の危険性がないようなので(MHは複数プロセスで読み書きするのに問題がある)、ついでに変更することにした。
MHからMaildirへの変換には、mh2maildirというのがあるらしい。これはメールを一つ一つ読みprocmailに渡して Maildir形式に変換し保存する。自分の5年分以上のメールを変換したところ、楽に1時間以上も時間がかかった。変換するだけでなく中身のチェックと修正もしているので遅いのだろう。
IMAPはCourier-IMAPを導入した。Maildir形式に対応しているIMAPで特に難しいことを考えずに導入できた(IMAPってそういうものらしい)。
準備を整えThunderbirdでアクセスすると、これまでのメールをIMAPで読めた("購読"という概念に戸惑ったけど)。次にMewとWanderlustで読みに行く。同じメールを扱える。これはいい。
しかしいくつかの問題が発覚:
1. 遅い
2. MewやWanderlustで昔のメールの表示ができない
1については、IMAPを導入したサーバのパフォーマンスの問題であることは明確。白箱はSSLによるデータ転送をさせるだけで、CPUをフルに使用してしまう。以前からscpとかssh+rsyncは遅くて使えなかった。今回もIMAP+SSLでアクセスしていたが、通常のIMAPにしたところ若干反応が良くなった。
2については改行コードの問題で、Maildirで保存されたメールデータにCRLFが入っていると改行二つと理解してしまうもよう。そのため、ヘッダのパースも満足にできず、表示がおかしくなってしまっているもよう。試しにOutlookでも表示を試みたが、Outlookでも同様に表示がなされなかった。どこで改行コードがおかしくなったのか。。。MH形式のメールデータは改行コードがLFである。変換過程でCRLFになってしまったようだ。。。おそらくCygwin上でmh2maildir+procmailしたのが問題だろうとめぼしをつけ、対処をした。
最初に試みたのは、coLinuxで同じ作業をすること。白箱のLinxuで変換するにはCPUパワーが足りなさ過ぎる。そこでいつも使用しているWindowsでcoLinuxを動かして行うことにした。しかしこれは失敗。coLinuxを動かすのもなんとも複雑だったし(落ちたときに何で落ちたのか全く不明すぎ)、cofsでマウントしてファイルを直接扱えたのは良かったけれど、procmail周りで怪しげなエラーが出ている。スクリプトを見ると、なんだか差分が生じているらしい。
続行は可能だったけれども諦めて、KNOPPIXで出来ないか試そうとする。しかし何故かブートCDが作れないというトラブル。
悩んだ末に閃いたのが、MHとIMAPでメールが読めるメーラで、MHのメールをIMAPフォルダに移すこと。これは良いアイデア!というわけで、Sylpheedを起動してMHフォルダの全てのメッセージをIMAPフォルダに移動させた。
いろいろと試行錯誤した割りに最後がSylpheedで手作業変換というオチでガックリしたが、無事にしたいことは果たせた。これからはMew+Wanderlust+Sylpheed+Thunderbirdのどれかでメールを読み書きします。
はー、残務としてはRAID化されている白箱のバックアップがある。これはUSBでハードディスクをつなげて一日一回rsyncするようにすること。ここまですれば、メールと画像がなくなることはないだろうと。
http://www.informatik-vollmer.de/software/mh2maildir.php
http://mjm4u.net/oss/courier-imap/
http://sylpheed.good-day.net/ja/
0 件のコメント:
コメントを投稿