はじめに
メールサーバのリプレース作業では、旧サーバと新サーバのデータを完全に同期してから切り替えることが一般的です。
例えば rsync を使用して、
rsync -av /maildata/ new-server:/maildata/
でメールデータを旧サーバから新サーバにコピーし、切り替え直前に再度差分同期を行います。
管理者としては、
「これで旧サーバと新サーバは完全に同じ状態になった」
と思うでしょう。
ところが切り替え後、
利用者から次のような問い合わせを受けることがあります。
- メールが消えた
- 以前のメールが見えない
- 受信済みメールが突然なくなった
- 届いているはずのメールがない
実はこれは移行失敗ではなく、「メールサーバのデータ」と「利用者が見ているメール」が別物であることが原因です。
管理者が見ているもの
サーバ管理者が確認しているのはメールサーバ内のデータです。
例えば、
user1
├─ mailA
├─ mailB
└─ mailC
であれば、
新サーバにも
user1
├─ mailA
├─ mailB
└─ mailC
が存在します。
ファイル数もパーミッションも一致しています。
容量も一致しています。
rsyncの結果にもエラーはありません。
つまり管理者視点では「完全同期」です。
利用者が見ているもの
一方、利用者はメールサーバのファイルを直接見ているわけではありません。
OutlookやThunderbirdなどのメールソフトを通じてメールを見ています。
POP受信環境では、
メールソフト側が
- 受信済みメール
- ダウンロード履歴
- UIDL情報
などを管理しています。
つまり利用者が見ているメール一覧は、
サーバ上のメール
+
メールソフト側の管理情報
によって構成されています。
もう少し具体的に説明すると
原因はPOPがメールを管理する仕組みにあります。
POPではメールサーバ上のメールを識別するために、
「UIDL」
と呼ばれる管理情報を利用しています。
メールソフトは
UIDL-001
UIDL-002
UIDL-003
のような情報を記録しています。
新サーバではUIDLが変わることがある
サーバ移行後、
同じメールデータをコピーしていても、
UIDL-101
UIDL-102
UIDL-103
のようにUIDLが変化することがあります。
メールソフトから見ると、
今まで見ていたメール
↓
存在しない
新しいメール
↓
別物
として認識されます。
メールソフトによってはメールが表示されなくなる
POPクライアントは、
「過去に受信したメール」
をUIDLで管理しています。
そのため、
- メールが再受信される
- メールが消えたように見える
- 一部だけ表示されない
といった現象が発生します。
利用者から見ると、
昨日まで見えていたメールがない
状態になります。
サーバの完全同期=利用者環境の完全同期ではない
ここが移行時の最大の落とし穴です。
管理者は
旧サーバ = 新サーバ
を作れます。
しかし、
旧サーバ
+
利用者PCのメールソフト
=
新サーバ
+
利用者PCのメールソフト
までは保証できません。
そのため、
サーバ上には存在しているメールなのに、
利用者からは
メールが消えた
ように見えることがあります。
実際によくある問い合わせ
移行翌日に最も多い問い合わせがこれです。
「先週受信したメールが見えません」
管理者がサーバを確認すると、
ちゃんと存在している
というケースです。
ユーザーからするとメールが消えています。
管理者からするとメールは存在しています。
どちらも間違っていません。
見ている場所が違うためです。
特にPOP環境は注意
IMAPの場合はメール状態の多くをサーバ側で管理します。
一方POPは、
メールソフト側の情報に依存する部分が大きいため、
サーバ移行時の影響を受けやすくなります。
そのため、
「メールデータを同期したから大丈夫」
ではなく、
「利用者のメールソフトがどう動くか」
まで考慮して移行計画を立てる必要があります。
対策方法
方法1:IMAPへ移行する
IMAPであれば、
- メール
- フォルダ
- 既読情報
をサーバ側で管理できます。
サーバ移行時のトラブルも大幅に減ります。
方法2:あえてメールデータは移行しない
POP環境を継続する場合は、
メールデータは新サーバに移行しない方が良いです。
全く新規のデータを新サーバで1から作成する方がトラブルは少ないかもしれません。
ただし、この場合、取りこぼしが無いように旧サーバで最後までメールを取り込んで新サーバのメールサーバの設定に変更しましょう。
方法3:テストユーザーで事前検証する
本番移行前に、
- Outlook
- Thunderbird
- Windows Mail
など実際に利用しているメールソフトで検証します。
旧サーバのアカウントとは別に、新サーバ用のアカウントを作成する方法もあります。
メールソフトによって挙動が異なるためです。
まとめ
メールサーバ移行では、
「サーバ間のデータ同期」
と
「利用者から同じように見えること」
は別問題です。
特にPOP受信環境では、
サーバを完全同期しても利用者のメール一覧が変わる場合があります。
移行作業では、
- メールデータの同期
- DNS切り替え
- メールソフトの挙動確認
- 利用者への事前周知
まで含めて検討することが重要です。
「サーバは完全同期できたのにメールが消えたと言われる」
という事態を防ぐためにも、事前検証を十分に実施しましょう。
今回はここまでです。最後までお読みいただきありがとうございました。