本記事では、Google Takeout でダウンロードしたMBOX形式のメールをOutlookに取り込む手順について解説しています。
もし移行元のGmailに今でもOutlookで接続できているなら、Outlookデータファイル(PST形式)をローカルに作成してインポートする方が簡単です。この場合の具体的な手順は次のサイトで紹介されています。
さて、MBOX形式をPST形式に変換する手立ては色々あるのですが、お客様のデータをお預かりしている以上、無料のサードパーティ製ツール(インストール型、Webオンラインサービス型を問わず)は怖くて手が出せません。
ここでは、Thunderbirdと簡単なExcelマクロで変換してみます。
Gmail全体のダウンロード
Googleのバックアップツールでmboxファイルをダウンロードします。
次に挙げるのは、有料サービスの Google Workspace(旧G Suite)で確認した手順です。
メールアドレスが @gmail.com で終わる無料Googleアカウントで出来るかどうかは試していません。
下準備
先に、不要なメールは削除しておきましょう。
- ゴミ箱と迷惑メールフォルダを空にする
- 容量が大きいメールは削除
など。
Gmailの検索欄に例えば larger:30M
と入力すると30Mバイトより大きいメールを検索できます。
メール本文は残し、添付ファイルだけ削除できると良かったのですが、そのような方法は見つけられませんでした。(Google Apps Script を書けばできると思いますが)
後述するThunderbirdなら、良いアドオンが見つかるかもしれません。
エクスポート
Gmailにログインした状態で、Googleアカウントの管理画面に入ります。
左のメニュー「データとプライバシー」から「データをダウンロード」をクリックします。
「メール」にチェックが入っていることを確認し、「次のステップ」をクリックします。
エクスポート先を「Googleドライブに追加」、ファイルサイズを10GBなどのようにして「エクスポートを作成」をクリックします。
メールの総量にも依りますがエクスポートに数時間から数日かかります。
「エクスポートの進行状況」からいつでも確認できるので、完了したらGoogleドライブからダウンロードします。
ZIPファイルを解凍すると、mboxファイルがあります。
任意のフォルダに展開しておきましょう。
Thunderbird で mbox を eml に変換
前のメジャーバージョンである102系の最新を、次のFTPサイトからダウンロードします(記事執筆時点では 102.15.1 が最新)。
前バージョンを使う理由はアドオンが対応しないためです。
64bit版Windowsで日本向けなら、ディレクトリを次の位置まで辿れば良いです。
組織内ネットワークからアクセスしている場合、組織のセキュリティポリシーでexe形式のダウンロードが制限されているかもしれません。
どちらを選んでも良いのですが、一般的には、より安全なmsi形式が好まれます。
ダウンロードして実行すると、デスクトップにショートカットが追加されます。
ショートカットからThunderbirdを起動すると、アカウントのセットアップ画面になるので、ダミーのアカウントを作成します。
名前とメールアドレスは適当に入力し、パスワードは空欄、"パスワードを記憶する" のチェックを外して「手動設定」をクリックします。
下の方にスクロールすると「詳細設定」があるのでクリックします。
ダミーのアカウントが作成されました。
続いて、上部メニューから「アドオンとテーマ」をクリックします。
「アドオンを探す」に ImportExportTools と入力します。
先頭に「ImportExportTools NG」があると思うので、緑のボタンをクリックします。
アドオンが追加されました。
続いて、左ペインに表示されている「ローカルフォルダー」を右クリックし、「新しいフォルダー」を選びます。
作成したフォルダーを右クリックし、[ImportExportTools NG]-[mboxファイルをインポート]-[個々のmboxファイル] を選択します。
先ほどダウンロードしたmboxファイルを指定します。
すべてのメールがThunderbirdにインポートされたと思います。
「すべてのメール(迷惑メール、ゴミ箱のメールを含む)」を右クリックし、[ImportExportTools NG]-[フォルダー内のすべてのメッセージをエクスポート]-[EML形式]-[メッセージとHTMLインデックス] を選択します。
任意のフォルダを指定し、emlファイルを出力します。
なお、バージョン102系のThunderbirdは今でもサポートが継続されているものの、将来的にはセキュリティアップデートがされなくなるバージョンなので、使用は今回の用途のみとした方が良いでしょう。
Outlookに取り込み用のフォルダを作成
Outlookで既定アカウントの受信トレイを右クリックし、「フォルダーの作成」から「インポート」という名前のフォルダを作成します。
後述のマクロでは、このフォルダにemlファイルを取り込みます。
Outlookに複数のアカウントが登録されている場合、必要に応じて既定を変更して下さい。
マクロでemlファイルをOutlookに取り込む
手順は、
- 任意のフォルダにExcelを置き、標準モジュールに以下のコードを貼付
- Excelを置いたフォルダに「未処理」という名前でサブフォルダを作成
- 未処理フォルダに、先ほど出力したemlファイルをコピー
- コードを実行
Sub 一括インポート()
Dim olApp As Object, olFolder As Object, oFSO As Object, oFile As Object, oWsh As Object
Dim sBaseDir As String, s未処理dir As String, s処理済dir As String
' フォルダ作成
Set oFSO = CreateObject("Scripting.FileSystemObject")
sBaseDir = ThisWorkbook.Path
If Right(sBaseDir, 1) <> "\" Then sBaseDir = sBaseDir & "\"
s未処理dir = sBaseDir & "未処理\"
If Not oFSO.FolderExists(s未処理dir) Then oFSO.CreateFolder s未処理dir
s処理済dir = sBaseDir & "処理済\"
If Not oFSO.FolderExists(s処理済dir) Then oFSO.CreateFolder s処理済dir
' オブジェクト生成
Set olApp = CreateObject("Outlook.Application")
Set olFolder = olApp.GetNamespace("MAPI").GetDefaultFolder(6).Folders("インポート")
olFolder.Display
Set oWsh = CreateObject("WScript.Shell")
' メインループ
For Each oFile In oFSO.GetFolder(s未処理dir).Files
oWsh.Run "outlook /eml " & Chr(34) & oFile.Path & Chr(34), , True
olApp.ActiveInspector.CurrentItem.Move olFolder
oFSO.MoveFile oFile.Path, s処理済dir
DoEvents
Next
End Sub
Outlookはマクロが起動するので、Outlookを予め起動しておく必要は無いです。
emlファイルを1件ずつ取り込んでいくので時間がかかります。気長に待ってあげて下さい。
取り込んだemlファイルは「処理済」のフォルダに移動してくれるので、エラーになったら単純に再実行で良いです。
強制中断はESCキーの長押しです。
最近リリースされた「新しいOutlook」はCOMアドインをサポートしないので動かないかもしれません。
マイクロソフトとしては、自動化は PowerAutomate+Copilot にしたいのかもしれませんね。