「ThunderbirdでPOP3のメールサーバーを利用している状態1から、Microsoft 365のOutlookに乗り換える」といった移行シナリオでは、Thunderbirdに保存された古いメールをどうやって閲覧するかが課題となります。
最も簡単なのは「古いメールを保持した状態のThunderbirdを閲覧専用で残しておく」やり方ですが、この場合、古いメールを元に返信したり転送したりしようと思うと、その都度手作業でメールを新環境にコピーする必要が生じます。 新環境のメールアカウント2をThunderbirdに作成すれば、受信済みのメールをドラッグ&ドロップで新環境に持ち越せますが、手動操作には操作ミスの危険がありますし、ユーザーが手順をなかなか実施してくれない恐れもあります。
そこでこの度、このような問題を解決する簡易的なソリューションとして、メールサーバー間でのメールの移行処理(コピー処理)を自動化し、組織単位でのメールシステム移行を支援するThunderbirdアドオン「Migrate Messages Between Accounts」を作成しました。 本記事では、このアドオンを使ったメールアカウントの移行の仕方を解説します。
準備
「Migrate Messages Between Accounts」がやることはシンプルで、Thunderbird上で複数のメールアカウントがある状態において、指定に基づいて「移行元アカウント」から「移行先アカウント」へと保存済みのメールをコピーします。 動作するためには、以下の準備が必要です。
- 移行先メールアカウントの作成
- アカウント間の移行ルールの定義
Thunderbirdはアドオンからメールアカウントを作成する機能を提供していないため、移行先メールアカウントの準備だけは別途行わなくてはなりません。 グループポリシーでもメールアカウントの作成までは行えないため、管理者側で一括して行うためにはMCD(AutoConfig)を使う必要があります。
移行ルールの定義
アカウント間の移行ルールはポリシー設定で定義します。 Active Directory(以下、AD)用のポリシーテンプレートがあり、テンプレートを導入すると「管理用テンプレート」配下に「Thunderbirdアカウント間メッセージ移行」という項目が表示されるようになります。

それぞれの項目をどのように設定するかは、ポリシーエディターの画面内に表示される説明を参照して下さい。
AD管理下にない端末の場合や、特定のPCだけで実験的に使ってみる場合などには、policies.jsonを作成してThunderbirdのインストール先のdistributionに設置してください。
書き方の詳細な説明はリポジトリーのREADMEにあります。
以下に典型的な設定例を示します。
{ "// 「//」で始まるキーは説明のためのコメント代わりに記載しています。実運用時は削除して下さい。": 0,
"policies": {
"3rdparty": {
"Extensions": {
"migrate-messages-between-accounts@clear-code.com": {
"// 移行元と移行先のアカウントのペアの定義。": 0,
"migrations": [
{ "// POP3でローカルフォルダーアカウントに保存済みのメールを移行する場合。": 0,
"source": { "type": "none" },
"destination": { "email": "example.com", "type": "ews" }
},
{ "// メールアドレスが同じIMAPアカウントからMicrosoft 365へ移行する場合。": 0,
"source": { "email": "example.com", "type": "imap" },
"destination": { "email": "example.com", "type": "ews" }
},
{ "// メールアドレスが異なるIMAPアカウント同士で移行する場合。": 0,
"source": { "email": "example.org", "type": "imap" },
"destination": { "email": "destination.example.org", "type": "imap" }
}
],
"// 移行先に作成するフォルダー名の使用禁止文字と置き換えのパターン。": 0,
"folderNameSanitizationRules": {
"@": "_at_",
".": "_",
"/": "_"
},
"// 初期状態では移行しないフォルダー名のパターン。": 0,
"// (「?」と「*」のワイルドカードを使用可能)": 0,
"defaultExcludedFolderNames": [
"ごみ箱", "ゴミ箱", "Trash",
"削除済みアイテム", "Deleted Items",
"迷惑メール", "Junk*"
],
"// サーバー操作のタイムアウト秒数。": 0,
"// (Exchangeサーバーの場合、長めに取った方が安定します)": 0,
"apiCallTimeoutSeconds": 60,
"// 移行処理完了後の「完了しました」メッセージを表示する秒数。": 0,
"// (指定秒数経過後に自動でダイアログを閉じます)": 0,
"completionDialogDisplaySeconds": 3
}
}
}
}
}
Thunderbirdの拡張機能向けAPIの制約のため、各メールアカウントはメールアドレス3とメールサーバーの種類の組み合わせをヒントにしてアカウントを識別します。 移行元・移行先として指定できるアカウントは以下の種類のみとなります。
- 移行元アカウント
- POP3
- IMAP
- Exchange Web Services(Thunderbird 145以降)
- ローカルフォルダー
- 移行先アカウント
- IMAP
- Exchange Web Services(Thunderbird 145以降)
同じ種類のアカウントでメールアドレスも同じである場合(メールサーバーの移行でよくあるパターン)には、Thunderbird上で先に認識されているもの(作成時期が古いもの)を移行元、後に認識されているもの(作成時期が新しいもの)を移行先として認識します。 確実に判定させたい場合は、移行の間だけどちらかのアカウントのメールアドレスを変更するなどの対応が必要となります。
移行の実施
「Migrate Messages Between Accounts」は、読み込まれた時に移行ルールに該当するメールアカウントのペアを検出します。 ペアを初めて検出した時点で、本アドオンはアカウント間のメール移行処理を自動的に開始します。 処理は以下の流れで進行します。
- 移行元アカウントのメールフォルダーの探索

- 移行対象フォルダーの選択

- 移行先アカウントへのメールフォルダー作成とメールのコピー

メールの件数が多い場合、移行には時間がかかります。 移行が完了すると、完了の旨を表示するメッセージが一定時間表示され、ダイアログが自動的に閉じられます。
移行を中断した後や、初回の移行で除外したメールフォルダーを改めて移行したい場合などには、フォルダーツリーが表示されているタブのツールバー上に配置された「メッセージ移行」ボタンをクリックして任意のタイミングで移行処理を再実施できます。

なお、本拡張機能は移行元のメールには一切変更を加えません。 移行先のメールを誤って削除してしまった場合でも、移行元メールアカウントがまだ残っている限りは、いつでも移行を再実施することができます。
まとめ
以上、メールアカウントの移行を支援するThunderbird拡張機能「Migrate Messages Between Accounts」の使い方を簡単にご紹介しました。
当社ではメール誤送信対策アドオン「FlexConfirmMail」をThunderbirdとOutlookのそれぞれ用に開発しており、Thunderbird版とOutlook版の両方を対象とした法人向けの有償サポートサービスもご提供しています。 メールの誤送信トラブルやThunderbirdの運用・移行などでお悩みの企業の運用担当者さまは、是非お問い合わせフォームよりご連絡下さい。