GmailをOutlookに移行する

本記事では、Google Takeout でダウンロードしたMBOX形式のメールをOutlookに取り込む手順について解説しています。

もし移行元のGmailに今でもOutlookで接続できているなら、Outlookデータファイル（PST形式）をローカルに作成してインポートする方が簡単です。この場合の具体的な手順は次のサイトで紹介されています。

https://office-hack.com/outlook/gmail/

さて、MBOX形式をPST形式に変換する手立ては色々あるのですが、お客様のデータをお預かりしている以上、無料のサードパーティ製ツール（インストール型、Webオンラインサービス型を問わず）は怖くて手が出せません。

ここでは、Thunderbirdと簡単なExcelマクロで変換してみます。

# Gmail全体のダウンロード
Googleのバックアップツールでmboxファイルをダウンロードします。

次に挙げるのは、有料サービスの Google Workspace（旧G Suite）で確認した手順です。
メールアドレスが @gmail.com で終わる無料Googleアカウントで出来るかどうかは試していません。

## 下準備
先に、不要なメールは削除しておきましょう。

- ゴミ箱と迷惑メールフォルダを空にする
- 容量が大きいメールは削除

など。

Gmailの検索欄に例えば `larger:30M` と入力すると30Mバイトより大きいメールを検索できます。

https://support.google.com/mail/answer/7190?hl=ja&ref_topic=3394593

メール本文は残し、添付ファイルだけ削除できると良かったのですが、そのような方法は見つけられませんでした。（Google Apps Script を書けばできると思いますが）

後述するThunderbirdなら、良いアドオンが見つかるかもしれません。

## エクスポート
Gmailにログインした状態で、Googleアカウントの管理画面に入ります。

https://myaccount.google.com/

左のメニュー「データとプライバシー」から「データをダウンロード」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/8f35928a-b4e4-3a53-69a5-9704279cc371.png)

「メール」にチェックが入っていることを確認し、「次のステップ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/d24a32f7-f609-b6fc-73f6-b933595a9a8a.png)

エクスポート先を「Googleドライブに追加」、ファイルサイズを10GBなどのようにして「エクスポートを作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/cf850fa0-5e86-08c1-da5b-d189e0309bd1.png)

メールの総量にも依りますがエクスポートに数時間から数日かかります。
「エクスポートの進行状況」からいつでも確認できるので、完了したらGoogleドライブからダウンロードします。

https://drive.google.com/

ZIPファイルを解凍すると、mboxファイルがあります。
任意のフォルダに展開しておきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/ca21a05f-67ae-7cad-2638-bbb9e96e9925.png)

# Thunderbird で mbox を eml に変換
前のメジャーバージョンである102系の最新を、次のFTPサイトからダウンロードします（記事執筆時点では 102.15.1 が最新）。
前バージョンを使う理由はアドオンが対応しないためです。

https://ftp.mozilla.org/pub/thunderbird/releases/

64bit版Windowsで日本向けなら、ディレクトリを次の位置まで辿れば良いです。
組織内ネットワークからアクセスしている場合、組織のセキュリティポリシーでexe形式のダウンロードが制限されているかもしれません。
どちらを選んでも良いのですが、一般的には、より安全なmsi形式が好まれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/506946c5-4adb-1ba1-b9f0-8b99cb46fe96.png)

ダウンロードして実行すると、デスクトップにショートカットが追加されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/d67134b8-5e07-c84e-9546-dec1aced6487.png)

ショートカットからThunderbirdを起動すると、アカウントのセットアップ画面になるので、ダミーのアカウントを作成します。
名前とメールアドレスは適当に入力し、パスワードは空欄、"パスワードを記憶する" のチェックを外して「手動設定」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/c58a5fd6-3866-2a61-580a-2fa8c79cb694.png)

下の方にスクロールすると「詳細設定」があるのでクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/7c0fe989-39d7-80d2-0e7f-0f17cfbfeda2.png)

ここで警告が出ますが「OK」で続行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/8062f1b9-ba1f-e05d-372f-497400077d51.png)

ダミーのアカウントが作成されました。

続いて、上部メニューから「アドオンとテーマ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/d18fb0c7-37a4-ebfe-b491-1a08313f7779.png)

「アドオンを探す」に ImportExportTools と入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/45d176a4-38c9-96d5-158d-4e420ac164bd.png)

先頭に「ImportExportTools NG」があると思うので、緑のボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/e9cf61c6-ce83-c0c5-4428-c963ecaaee90.png)

アドオンが追加されました。

続いて、左ペインに表示されている「ローカルフォルダー」を右クリックし、「新しいフォルダー」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/f62b23b7-f7f2-091f-3c37-6acfc441d88d.png)

フォルダーの名前はなんでも良いです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/7aa65d30-0b49-35d3-7fb5-7427b54f6a94.png)

作成したフォルダーを右クリックし、[ImportExportTools NG]－[mboxファイルをインポート]－[個々のmboxファイル] を選択します。

先ほどダウンロードしたmboxファイルを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/699353eb-13e1-c448-a948-8b7589f7f215.png)
すべてのメールがThunderbirdにインポートされたと思います。

「すべてのメール（迷惑メール、ゴミ箱のメールを含む）」を右クリックし、[ImportExportTools NG]－[フォルダー内のすべてのメッセージをエクスポート]－[EML形式]－[メッセージとHTMLインデックス] を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/96d7ada1-d920-b721-c5bb-42edbd94d7b3.png)

任意のフォルダを指定し、emlファイルを出力します。

なお、バージョン102系のThunderbirdは今でもサポートが継続されているものの、将来的にはセキュリティアップデートがされなくなるバージョンなので、使用は今回の用途のみとした方が良いでしょう。

# Outlookに取り込み用のフォルダを作成
Outlookで既定アカウントの受信トレイを右クリックし、「フォルダーの作成」から「インポート」という名前のフォルダを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/9f490388-7640-aa0d-a0e3-c474c4c1b82c.png)
後述のマクロでは、このフォルダにemlファイルを取り込みます。

Outlookに複数のアカウントが登録されている場合、必要に応じて既定を変更して下さい。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/d15e639a-af3d-5664-b3cc-f5c7f222234e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236222/1d2af00f-4d0c-9dfe-9ede-f17a359f0bed.png)

# マクロでemlファイルをOutlookに取り込む
手順は、
1. 任意のフォルダにExcelを置き、標準モジュールに以下のコードを貼付
1. Excelを置いたフォルダに「未処理」という名前でサブフォルダを作成
1. 未処理フォルダに、先ほど出力したemlファイルをコピー
1. コードを実行

```vb
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 にしたいのかもしれませんね。