Becky!2 から Thunderbird 2 へ移行する方法
Thunderbird 2 がいろいろと良さそうな雰囲気を漂わせているのでちょっと試用してみることにしました。サーバ上からデータを削除せず Becky!2 としばらく併用してみて移行する価値があるかを試してみようかと思います。Thunderbird 2 は現在ベータ2がダウンロード可能です。
で、設定の類は仕方がないのである程度手動を覚悟をいてはいるのですが、既存のメールボックスのデータは最低限移行できないと困るわけですが、Thunderbird 2 のエクスポート機能は見ての通り Becky!2 のようなシェアウェアは対応していません。
で、ちょっとネットを検索してみたら以下の二つのサイトが参考になりました。
- Windows/Mozilla Thunderbird/Becky2からの移行 - cubic9.com
- Becky!2 から Mozilla Thunderbird への移行 - World Wide Walker
Becky!2 から Thunderbird 2 へ移行する方法
Becky!2 の標準 export はフォルダ単位でしかエクスポートできないので、全フォルダを手動でエクスポートする必要がある。これは手間なので、CircleBecky plug-in の手を借りることにします。CircleBecky plug-in をインストールして Becky2! を再起動すればフォルダルートから一括でエクスポートが可能となるのです。
この一括エクスポートを行う前にプラグイン設定で以下のようにエクスポート形式を mbox へ変更しておく。これで Thunderbird2 でインポート可能な形式になる。約3万通のメール数で約10分程度でエクスポートが完了しました。
さて、ここからちょっとしたテクニックが必要になります。Thunderbird2 のメールボックスの形式は以下のようになっています。Thunderbird2 のメールボックスの構造は以下の通りになっています。
mailbox ファイル名 ・・・・ mailbox フォルダ名 mailbox ファイル名.msf ・・・・ 自動生成される mailbox 管理情報 ┃ ┗━ mailbox ファイル名.sbd ・・・・ mailbox階層をディレクトリ構造で管理 ┃ ┗━ mailbox ファイル名 ・・・・ mailbox フォルダ名 mailbox ファイル名.msf ・・・・ 自動生成される mailbox 管理情報
で、CircleBecky plug-in で生成されるエクスポートファイルはこの形式になっていないので何らかの変換を行う必要があります。フォルダを変換してくれる VBScript なるものが公開されているのですが、Vista だからなのかエラーで動かない。面倒なので Perl でスクリプト作りました。※多分標準で動くと思います。(嘘?)
use strict; use warnings; use File::Find; use File::Copy; our $root = './B2F_TMP'; our @filelist; mkdir($root) unless ( -e $root ); find( { wanted => \&filter, no_chdir => 0 }, './' ); foreach my $e ( sort @filelist ) { if ( $e->{filename} =~ m!mbox$! ) { my @path = split( '/', $e->{dir} ); shift @path; pop @path; my $str = $root; foreach my $p (@path) { $str .= "/$p.sbd"; mkdir($str) unless ( -e $str ); } my $cpfile = qq{$str/$e->{filename}}; $cpfile =~ s/\.mbox//; print qq{$e->{fullpath} : $cpfile\n}; copy( $e->{fullpath}, $cpfile ); } } sub filter { push @filelist, { dir => $File::Find::dir, filename => $_, fullpath => $File::Find::name, }; }
このスクリプトを動作させるには、ActivePerl を Windows にインストールしている必要があります。よくわからない場合は、知ってるお兄さんを見つけて聞いて下さい。
エクスポートしたフォルダ配下に、このスクリプトを適当に b2f.pl とでもしてファイルを作成して実行してください。B2f_TMP というフォルダが自動生成され、そのフォルダ配下に Thunderbird2 でインポート可能な形式のファイル群が生成されます。
このB2F_TMP 配下のファイルを全て Thunderbird2 の Local Folders フォルダ配下にごっそり移動します。Local Folders は Windows の検索機能を使えば何処にあるかすぐにでてくると思います。
さて、ここまで来たら Thunderbird 2 を起動してみます。ごっそり mailbox が見えているはずです。
さて、実はこれだけではインポートできない mailbox もあります。以下のように mailbox を階層化していて、しかもそのルートにメールが1通も無い場合です。
この場合は、Thunderbird 2 上からそのルートの mailbox 名を新規作成してやると、元の階層のままの mailbox が表示されるようになります。
と、とりあえずこれで Becky2! から Thunderbird 2 へのメールデータの移行は完了しました。後は設定ですが、いろいろt出回っているツールは何故かうまく動いてくれない(Thunderbird 1 用途だから?)ので手動でチマチマやることにします。疲れた・・・
コメントやシェアをお願いします!
おうじょう こいた
非常に助かりました。
とても有用な情報、有り難うございます。
犬山
有難うございます。
参考になります。CircleBeckyは上手く動きました。
フォルダー構成は、windowsのフォルダー構成として作成されました。
(http://nic-nac-project.de/~kaosmos/mboximport-en.html にある、
ImportExportToolsでインポートしてみましたが、
フォルダー構成は再現されずフラットに並びますので、
やはり、このperlの需要はあると思います。)
ura
ありがとうございました。
とても助かりました。
Perlやったことなかったのですが、
ささっと作られている様子を見て興味が沸いてきました。
kenta
ありがとうございました。
参考になりました。
ゴビ
Good Advice, ありがとうございます。
私には助かりました。Beckyからmboxにエクスポートした後ThunderBirdにインポートする時にはMboxImportツールを使えばVBのスクリプト等が入りません。
http://nic-nac-project.de/~kaosmos/mboximport-en.html
ここからMboxImportをダウンロード出来ます。