メールサーバの契約をAプランからBプランに変更することになり、メールボックスのデータ移行を実施するため作業を実施することになりました。
考えたこととか検証してみたことをご報告です。
経緯
メールサーバAからメールサーバBに移行する、となったとき、POPアカウントを使用していれば、メールデータがPC(にインストールされたメールアプリケーション)ベースで管理されているため、それほどデータ移行で考慮することもないのですが、IMAP環境ではメールサーバに全てのメールデータが保管されているため、データ移行のための作業が必要になってきます。
今回はレンタルサーバで契約しているメールサーバのAプランから、同じ会社の契約ではあるのですが別のメールサーバとなるBプランへの移行を実施することになりました。
データ移行は手作業で実施する必要があるのですが、サーバ上のデータを直接操作するということはできません。
また、プランAのメールボックスからプランBのメールボックスへ移行する時にメールのデータ損失がないことを確認することが難しい(メールの量が多くすぐ確認が出来ない)ことから、プランAの状態をバックアップとしてファイルに保存する、という条件も追加で必要になりました。
こういった条件の下、IMAPで使用するメールアカウントのメールボックスデータ移行を実施する、ということでテストユーザで検証してみました。
環境
環境は以下の通りです。
- OS:Windows10 or Windows11
- メールソフト:Outlook(classic)※Microsoft365かOffice2016/2019付属のOutlook
- メール環境はアカウントによってPOPもしくはIMAPが使用されている
Outlookをメールボックスの操作画面とする
条件を満たすために、Microsoft Outlookを使用して、バックアップの取得とメールデータの移行作業を実施してみることにしました。
Outlookを使うと「.pstファイル」をベースにアカウント別のメールデータを取り扱うことになるので、この「.pstファイル」がバックアップデータとして有効になると考えました。(クライアントPCでもOutlookを使っているため、バックアップデータを取り扱いやすいとの考えです。クライアントPCでメールソフトにThunderbirdが使われていればThunderbirdベースでバックアップを収集したほうがいいだろうと思います。)
IMAPのメールデータを確認してみる
以下のようなOutlook環境があると仮定します。

各受信トレイや送信済みアイテムにIMAPベースで接続したメールサーバ内に保管されたメールデータがOutlook画面を通じて表示できるようになっています。
IMAPのメールデータはOutlookでは「.ostファイル」という一時ファイルにメールデータが保管されています。.pstファイルと似て異なるもののようです。
場所は、<%USERPROFILE%\AppData\Local\Microsoft\Outlook>に各.ostファイルが保管されていました。

このメールデータをそのまま取得できないかと考えたのですが、.ostファイル自体はコピーできても、その.ostファイルを使って.ostファイルの中身のメールデータ(例えば.emlファイル)を取り出すということはできませんでした。詳しくは以前の記事<Offie版OutlookのIMAPメール環境バックアップ - treedown’s Report>参照。(※正確にはサードパーティ製のプログラム/ソフトウェアの力があればできるようですが、今回は対象外です。)
しかし、Outlookでは、この.ostファイルをエクスポートすることで.pstファイルを生成する機能があります。やってみます。
エクスポート:.pstファイルを生成する
Outlookのメニューから「ファイル」をクリックして選択し、左ペインから「開く/エクスポート」を選択するとこの画面になります。

画面内の「インポート/エクスポート」をクリックして選択します。
すると、「インポート/エクスポート ウィザード」画面が表示されます。

この画面中の「ファイルにエクスポート」を選択して「次へ」をクリックして進めます。
次の画面で、

「Outlookデータファイル(.pst)」を選択して、「次へ」をクリックします。
エクスポートする対象の選択画面が表示されますので、

ここでアカウントを選択して、「サブフォルダを含む」のチェックが入っていることを確認し、「次へ」をクリックします。
次の画面でファイルの保管先となるフォルダパスとバックアップ用.pstファイルのファイル名を指定します。

必要に応じて、デフォルトで指定されているフォルダからバックアップ用のフォルダに変更し、ファイル名も後々に見て理解できるようなファイル名(例:アカウント名+Backup+日付6桁.pst)にして「完了」ボタンをクリックします。
すると

パスワード入力を促す画面が表示されます。パスワードを入力するとエクスポートした.pstファイルは使用時(中のデータを確認する際)パスワードが要求されるようになります。
パスワードを空欄で「OK」ボタンをクリックした場合にはパスワードを設定せず.pstファイルを生成します。
こうしてバックアップデータが生成されました。

このデータがIMAPアカウントのメールデータバックアップとなる予定です。
生成された.pstファイルを使えるようにする
エクスポートが成功した.pstファイルは以下の方法でOutlookにマウント(ファイルベースで読み込んで中身のメールデータを使用)することができます。
コントロールパネルから「Mail(Microsoft Outlook)(32ビット)」をクリックして起動し、「メール設定-Outlook」画面を表示させます。

画面中の「データファイル」をクリック、Outlookの「アカウント設定」画面の「データファイル」タブを起動した画面が表示されます。

ここで「追加」をクリックして、先ほど取得した.pstファイルを選択します。

選択した.pstファイルの名称が、Outlookの「アカウント設定」画面の「データファイル」タブ内に表示されます。

ちなみに、複数のエクスポート.pstファイルを取り扱う場合、デフォルトでは同じ「Outlookデータファイル」という名称になっているので、「設定」をクリックして、

表示される「Outlookデータファイル」画面の「名前」を書き換えることで、判別しやすい名前に変更することができます。
例えば、

このように「backup-test」という名称に変更すると、

このような感じに名称変更ができます。
この状態でいったん「閉じる」ボタンで画面を閉じて、Outlook画面を確認したところ、

エクスポートした.pstファイルを読み込んだ状態のOutlook画面が確認できました。
しかしメールが閲覧出来ない
読み込んだ.pstファイルの受信トレイや送信済みアイテムを開いてみたのですが、

このように「ここに表示するアイテムは見つかりませんでした。」というメッセージ、
送信済みアイテムでも、

あるはずのメールが表示されないという状況。エクスポート前のIMAPメールボックスにあったメールが画面に表示されなくなってしまいました。
しかし、.pstファイルのプロパティから「フォルダサイズ」を確認すると、

このようにデータが存在していることは分かります。エクスポート方法になにか問題があるのか、Outlookの不具合なのか、はたまた.ostファイルから.pstファイルを生成する時に何かもう一手間必要なのか、この時点ではまったく分かっていませんでした。
続きます
週末にかなり時間を消費してしまったこの現象ですが、実はちょっとしたことが原因でした。
まだまとめていないのでこの対処は次回に続きます。
※次回: