« デザイン変更(再び) | トップページ | 【C/C++】 basic_stringクラス »

Becky!からMaildir(dovecot)への移行+WebMail

メーラはOSにも依存しないようにEmacs上でWanderlustを使ってるんやけど、以前はBecky!を使っていました。メールの管理にはPOPとIMAPの2種類の方式があるけど、Becky!ではPOPを使ってましたダ。POPだと手軽やけど、複数マシンで同じメールデータを管理する方法がちょっと面倒。例えば、共有フォルダにデータを置いて両方から開くなどしなくちゃならなくて・・・

で、IMAPなわけです。
IMAPではサーバ上にメールデータを置くため複数マシンからアクセスしてもまったく問題なし。ゴミ箱やら送信箱やらも全てサーバ上に保存する事ができるからバックアップシステムもそのまま使えるわけですな。そこでBecky!のデータをIMAPサーバ上に動かそうとしたのだけど、これがちょっとだけ面倒。覚書きしておきます。とは言っても、大分前にやった作業なんで少し忘れてるかも。

我が家の環境は以下の通り。

IMAPサーバ    dovecot
クライアント     wanderlust on Emacs
WebMail          SquirrelMail

それぞれのインストール方法は適当に調べてくださいな。(無責任・・・
移行方法の手順は大体以下の通り。

  1. Becky!のメールデータをmbox形式で保存(「ファイル」-「エクスポート」)
  2. mbox2maildirを使ってデータ変換

mbox2maildirって何もん?って感じですが、これはhttp://www.qmail.org/mbox2maildirにあります。qmailのパッケージの一つですな。見ての通り、mboxからMaildir形式に変換するPerlスクリプトです。実行にはもちろんperlが必要。

さて、まずはmbox形式での保存方法ですが、これは特に問題ないね。Becky!で各フォルダ毎に「エクスポート」からmbox形式での保存を選択しまする。mboxファイルは複数のメールデータを記録できる形式でBecky!ではフォルダ単位でのエクスポートになります。まぁ、この方が後々便利なんでね。全てのフォルダをエクスポートしたら、mbox2maildirを使って変換させます。この時、ちょっとだけ気をつけなければならないのが環境変数の設定。mbox2maildirはコマンドオプションではなくて環境変数からディレクトリ情報等を取得するようになってます。

例えば、Becky!で受信箱をmbox形式でエクスポートすると、そのまま「受信箱」というファイル名ができるのだけど、これをホームディレクトリに置いたとして

export MAIL=/home/****/受信箱
export MAILDIR=/home/****/Maildir
perl mbox2maildir

とする事で、mbox形式のデータを指定したディレクトリのMaildir形式に変換しまする。MAIL環境変数ではmbox形式のファイル名まで指定、MAILDIRはMaildir形式のディレクトリまで指定する必要があるわけです。ちなみにmbox2maildirはそのままでは最後にmbox形式のファイルを削除するようになっているので、それが嫌だったらmbox2maildir最終行のunlink〜を行毎コメントアウトするか削除しちゃいましょう。

これを繰り替えしてサブフォルダも変換していきます。たとえば「送信済み」の場合は、

mkdir /home/****/Maildir/.outbox

として送信済みデータを保存するディレクトリを作成して

export MAIL=/home/****/送信済み
export MAILDIR=/home/****/Maildir/.outbox
perl mbox2maildir

とすればOK!
これを繰り替えして全てのフォルダを変換すれば完了っす。wanderlustで扱うためにはディレクトリ名は必ず"."(ピリオド)から開始する必要があります。でも、SquirrelMailのようなWebMailだけから使うのであれば、好きに変えてもらって良いと思いますダ。試してないけど、日本語も使えるんちゃうかな?wanderlustではダメやけどね。

« デザイン変更(再び) | トップページ | 【C/C++】 basic_stringクラス »

ubuntu」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Becky!からMaildir(dovecot)への移行+WebMail:

« デザイン変更(再び) | トップページ | 【C/C++】 basic_stringクラス »