Thunderbirdのバージョン60で、mbox形式からmaildir形式への変換に正式に(?)対応しました。ただ、実際にやってみるとなかなかうまくいかなかったので、そのメモ。
まず、既定の設定ではmbox形式からmaildir形式への移行が実行できません。これは、いろいろ調べてみると、「設定エディター」で設定の変更が必要でした。
「ツール」→「オプション」でオプション画面を開き、「詳細」グループの「一般」タブにある「設定エディター」ボタンを押します。about:config画面の検索欄に「mail.store_conversion_enabled」と入力し、表示される内容を「true」に変更します。(ダブルクリックで変更できます。)
これで、変換機能を呼び出すことができるようになります。
変換機能の呼び出しは、「ツール」→「アカウント設定」を実行すると表示されるアカウント設定画面で、対象のアカウントの「サーバー設定」を選択します。「メッセージの保存」欄の「メッセージの格納形式」のドロップダウンリストが選択可能になっているので、「メッセージ単位 (maildir形式)」を選択します。
(上記の設定を変更しないと、この部分が変更できない)
(一部の設定内容を白で塗りつぶしています。)
この項目を変更すると、変換を実行できます。変換を実行すると、Windowsの一時(TEMP)ディレクトリにファイルをコピーし、変換処理を実行します。変換が完了すると、Thunderbirdが自動的に再起動され、めでたしめでたし…なのですが、ほとんどの場合で変換に失敗しました。
失敗パターンは以下の2つです。
その1: 途中で処理が止まるように見える。
(このままずっと待っていても、いつまでたっても進まない。%の数値はメールの量に依存すると思われる。キャンセルを押せば、変更前の状態に戻る。)
その2: 変換に失敗しました。で終わる
(キャンセルを押すしかない)
それぞれのエラーの発生条件は不明ですが、いずれにしてもメールの量に依存するようで、メールの量がある程度少ないとこれらのエラーは表示されず、正常に処理が完了します。正常に処理が完了する場合には、99%くらいまで順調に数値が増加し、その後少し待つと100%(以上)の数値になり、OKボタンで再起動・完了という流れです。
(99%位の数値に達すると、一時ディレクトリにある変換したデータを元のメールの位置に書き戻す処理が行われ、終了となります。)
いろいろ試したのですが、結局以下の方法で変換しました。
- 変換対象のメールをバックアップしておく
- (ローカルフォルダを利用していない場合) 上記の方法で、ローカルフォルダの形式をmaildir形式に変更する
→これは100%成功するはず - 変換対象のフォルダーで、メールの数が多いフォルダーをThunderbird内のツリーで、ドラッグ&ドロップしてローカルフォルダにコピーする
- コピー後、そのフォルダーは削除する 削除するとゴミ箱に移動するので、ゴミ箱をからにすることを忘れずに。
- 再度上記の方法で、変換を試す。変換が成功しなかったら、さらに3と4の手順を繰り返し、フォルダーを移動する
- 変換が成功したらThunderbirdを閉じて、Windowsのエクスプローラで、ローカルフォルダ内のフォルダを変換後のメールボックスのフォルダに移動する
(3と同じ方法で、Thunderbird内で元に戻しても良いが、Windows側で操作する方が早い)
なお、maildir形式に変換直後にそのフォルダーを開くと、インデックスの作成作業が行われるので、変換後の1回目のみは、フォルダー内のメール一覧の表示に時間がかかります。
(インデックスのファイルは、フォルダー名と同名で、拡張子msfのファイルです。)
mbox形式の場合には、1つのフォルダーに大量のメールがあると時々メールが破壊されて正しく表示できなくなる場合があることや、メールの数や添付ファイルの量・サイズに応じて性能的に遅くなる傾向があるので、maildir形式に変更しました。変更後は快適です。