プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

POP3 を IMAP4 に移行

Rainloop も導入したし、メールサーバー側で振り分けもできる目処が立ったので、既存のメールアカウントについて、 POP3 でローカルに保存しているメールを、 IMAP4 でアクセスできるようにサーバー側に移動させたいと思います。

そのうえで、 Rainloop ですべてのメールにアクセスできるようにしたいと思います。

Becky!

いままでメーラとしては Becky! Internet Mail Ver2 を使っていました。 Becky! 自体は IMAP でのアクセスも可能です。 なので、Becky! 上で POP3 のメールボックスと並んで IMAP4 用のアカウントを設定してやり、フォルダをコピーすれば、IMAP4側(サーバー側)にコピーできるんじゃないかと思いました。

が、甘かった。 実際試してみると下記のようなエラーがでます。

f:id:junichim:20191004234447p:plain

調べてみると、 Becky! では IMAP4 アカウントに対して、メールのコピーはできるのですが、

フォルダのコピーはできないようです。

ちなみに、下記リンク先の記事だとできるっぽいけど、IMPA4アカウント配下のローカルフォルダにコピーしてるだけなので、サーバー側にはコピーされてませんのでご注意を。

POP3からIMAP4への移行について | 慶應義塾 湘南藤沢ITC

移行方法

メールの数が少なければ、フォルダ毎に保存されているメールをコピーしてもいいんですが、長年使ってきたんでメールもフォルダも山のようにあります。 さて、どうしたもんか?と思って調べていると、 Thunderbird だと POP3 で保存しているフォルダ丸ごと IMAP4 側にコピーできることがわかりました。

POP アカウントを IMAP アカウントに切り替える | Thunderbird ヘルプ

それなら、若干手間がかかりますが、一旦、PC上で Becky! から Thunderbird にコピーして、その後 Thunderbird 上で POP3 から IMAP4 側にコピーするということで、なんとかなりそうです。こんな感じですね。

Becky! 2 (POP3) -> Thunderbird (POP3) -> Thunderbird (IMAP4)

では、早速、試してみます。

Becky! 2 (POP3) から Thunderbird (POP3) へメールデータをコピー

この操作ってメーラの移行と同じなので、メーラの移行で調べてみると、多くの記事がヒットします。

どれもだいたい似たような手順になってます。 上記の元記事とほとんど同じですが、備忘録も兼ねて書いておきます。

Becky! 側でのデータのエクスポート

CircleBecky プラグインのインストール

まず、 CircleBecky というプラグインをインストールします(ver 1.9.6)。 Vector からダウンロードして、落としてきたファイルをダブルクリックして、インストールします。

Windows 10 だと、最初はエラーが出ます(スクリーンショット取り損ねました)。 そのあと、もう一度起動すると、管理者権限で実行するか尋ねられるので、管理者としてインストールを進めると問題なくインストールできました。

インストール時には、プラグインをどこにインストールするのか聞かれるので、Becky!のプログラムフォルダ(C:\Program Files (x86)\RimArts\B2\PlugIns)を指定しておきます。

次に、 Becky! を起動すると、起動時にプラグインがインストールされたので、有効にするか否かを尋ねるダイアログが表示されるので、有効にします。

Becky! 起動後、『ツール』->『プラグインの設定』->『CircleBecky Plug-in』を選択します。

f:id:junichim:20191004231235p:plain

『拡張エクスポート』で eml が選択され、『閲覧用のHTMLを生成』のチェックをオフにしておきます。

f:id:junichim:20191004231423p:plain

これで、準備完了です。

Becky! 上のフォルダをエクスポート

IMAP4 に取り込みたい、 Becky! 上のフォルダ(サブフォルダを含んでいても可)を選択し、

f:id:junichim:20191004231657p:plain

『ファイル』->『フォルダ』->『拡張エクスポート』を選択します。

f:id:junichim:20191004231750p:plain

出力先のフォルダ選択画面が出てくるので、適当なフォルダを選択します。

メールの数が多いと時間がかかりますが、少なければすぐに終わります。

f:id:junichim:20191004231956p:plain

このようなダイアログがでて、先ほど指定したフォルダ以下にエクスポートされていれば終わりです。

なお、メールが一通も含まれないフォルダはエクスポートされませんでした。なので、フォルダもエクスポートしたいなら、最低でも1通はメールを含めるようにしてください(サブフォルダにメールが入っている形でも構いません)。

Thunderbird 側でのインポート

次に、 Thunderbird 側の作業です。

Thunderbird がインストールされていなければ、インストールします(作業時点で 68.1.1 )。

続いて、アドオンをインストールします。画面の右端にあるハンバーガーメニューをクリックして、アドオンを選びます。

f:id:junichim:20191004232315p:plain

アドオンの画面が表示されたら、『拡張機能』を選択し、検索窓より『ImportExportTools』と入力します。

f:id:junichim:20191004232436p:plain

検索結果の『ImportExportTools NG』を選んで、『Thunderbird へ追加』をクリックしてインストールします。

ちなみに、『ImportExportTools』はこのバージョンのThunderbirdではサポートされていないようで、インストールができません。

POP3 アカウントを設定

続いて、Becky! のメールを移行する POP3 アカウントを設定します。アカウントの設定手順は省略します。 実は、このアカウントではサーバーにアクセスはしないので、ダミーのアカウントでも問題ありません。

ちなみに、POP3 でサーバーにアクセスしないなら、直接 IMAP4 アカウントのメールボックスに対して、インポートをすればいいんじゃないか?と思われると思います。実際、そう思って、試してみたら、なぜか正しくインポートされませんでした。世の中甘くないですね。

Becky! のメールのインポート

この設定したアカウントに対して、Becky! のメールをインポートします。
受信トレイ上で右クリックして、『ImportExportTools NG』->『フォルダからすべてのemlファイルをインポート』->『サブフォルダも含む』を選択します。

f:id:junichim:20191004233019p:plain

フォルダ選択画面が表示されるので、先ほどBecky! でエクスポートしたフォルダを指定します。 問題がなければ、サブフォルダごとインポートされます。 なお、インポート時点ですべて未読メールになっています。

ちなみに、指定したフォルダが、受信トレイ(右クリックした場所)に対応します。なので、エクスポートしたフォルダ名も階層として取り込みたいときは、

  • Becky!で指定したフォルダの一つ上のフォルダを指定するか
  • Thunderbird側でフォルダを作成し、そのうえでインポート

を行うようにする必要があります。

Thunderbird 側での POP3 -> IMAP4 への移動

ここまでできれば、残りはあと少しです。

Thundirbird に IMAP4 でアカウントをセットアップします。

このIMAP4アカウントに対して、先ほど Becky! からインポートした Thunderbird 上の POP3 アカウント上のフォルダをドラッグアンドドロップしてコピーします。

f:id:junichim:20191004234151p:plain

メール数が多いと時間がかかりますが、操作が完了すればOKです。

これで、無事に IMAP4 上で今までのメールにアクセスできるようになりました。

注意点

実は、上記の方法で完璧に移行できる、というものではありません。

というのも、こちらの記事でも触れらているように、Becky! からすべてのメールデータをエクスポートしたはずのものが、すべてエクスポートされておらずに、一部のメールが欠けているという状態になったためです。

ただ、多くのフォルダでメールの欠けはないのですが、時々かけているフォルダがあります。 ちょっと見てみましたが、結局、これの発生原因も発生条件もよくわかりませんでした。

とはいえ、多くのフォルダがフォルダ構成を保ったままコピー処理できるのは魅力的です。なので、実際には

  1. 上記手順により Becky! (POP3) -> Thunderbird (POP3) へ移行
  2. フォルダ単位で、メール総数を比較
  3. メール総数が一致していれば、そのまま Thunderbird (POP3) -> Thunderbird (IMAP4) へコピー
  4. メール総数が一致していなければ、 Becky! 上に IMAP4 のメールボックスを作成し、フォルダ単位でメールをコピー

としました。 これだと、すべてBecky! 上で対応するよりは楽になります。

あー、疲れた。
とりあえず、これで1つ目のメールアドレスは移行できました。ほかのメールアドレスについても、あとは時間を見つけてボチボチ作業をしていきたいと思います。