imapsync移行で日付が保持されない問題の修正ガイド

1 min

imapsyncはLinuxシステム管理者、ホスティング事業者、オープンソースソリューションを好むすべての人にとってリファレンスとなるメール移行ツールです。Gilles Lamiralが作成し、2001年から積極的にメンテナンスされており、世界中で数百万のメールボックス移行に使用されてきました。Dovecot、Courier、Cyrus、Zimbra、Exchange、Gmailなど、事実上すべてのIMAPサーバーに対応しています。

imapsyncは包括的で設定可能であるという評判があります。管理者は移行するフォルダの細かい制御、重複処理、異なるサーバー間のフォルダ名マッピングを高く評価しています。しかし、imapsyncがどれだけ正しく設定されていても、1つの問題が繰り返し発生します。移行後のメール日付です。

INTERNALDATEの保持に関する誤解

imapsyncのドキュメントはINTERNALDATEの保持についてかなり明確です。imapsyncはソースサーバーから各メッセージの元のINTERNALDATEを取得し、宛先サーバーへのIMAP APPENDコマンドでその値を設定しようとします。多くの管理者はこれで日付問題が解決されると考えています。

しかし解決されません。

INTERNALDATEが正しく保持されていても、宛先サーバーは新しいReceivedヘッダーを移行タイムスタンプ付きで追加します。Outlookなどの多くのクライアントは、INTERNALDATEよりもReceivedヘッダーの日付を優先して受信日を決定します。INTERNALDATEが2020年1月15日と表示していても、最新のReceivedヘッダーが2024年6月3日と表示していれば、Outlookは2024年6月3日を表示します。

imapsync FAQの記述

imapsyncのFAQはこの制限を認めています。IMAPプロトコルがメッセージ挿入時にReceivedヘッダーの追加を必要とし、これがクライアントでの日付表示に影響する可能性があることを述べています。しかしFAQは具体的な解決策を提供せず、これをIMAPプロトコルの固有の制限として提示しているため、多くの管理者がこれは修正できない問題だと諦めてしまいます。

実は、修正できます。問題が永続的なのではなく、imapsyncにはそのための機能がないだけです。移行後にメールが間違った日付を表示する詳細な説明を参照してください。

imapsync移行ヘッダーの特定

BitTitanやCloudMとは異なり、imapsyncの移行ヘッダーには必ずしもimapsyncへの直接参照が含まれているとは限りません。imapsyncはソースからメールを取得して宛先に挿入するため、追加されるReceivedヘッダーは宛先サーバー自体からのものです。

特定の手がかりは、移行日と一致するタイムスタンプを持ち、「localhost」や宛先サーバー名を含むReceivedヘッダーです。メールの元の日付と一致しない日付の最上位のReceivedヘッダーが、移行アーティファクトです。

imapsyncでの一般的な日付シナリオ

LinuxサーバーからGoogle Workspaceへ

これは最も一般的なimapsync移行パスの1つです。DovecotやCourierを実行するLinuxサーバーからGoogle Workspaceへの移行です。GmailウェブインターフェースではDateヘッダーを使用するため正しく表示される場合がありますが、IMAPクライアントでは移行日が表示されます。

cPanelからMicrosoft 365へ

cPanelホスティングからMicrosoft 365への移行でもimapsyncがよく使われます。この場合、Outlook、OWA、モバイルアプリなど、Exchange Onlineに接続するすべてのクライアントで移行日が表示されます。

サーバー間統合

複数のIMAPサーバーを1つに統合する場合、imapsyncは各ソースサーバーから宛先にメールを移行します。統合の各バッチが異なる日付のReceivedヘッダーを追加するため、メールボックス内にソースサーバーごとに異なる「間違った」日付が混在する結果になります。

スクリプトでの修正が見た目より難しい理由

imapsyncを使用する管理者はしばしば技術に精通しており、自分でスクリプトを書くことを検討します。最上位のReceivedヘッダーを削除するスクリプトは10通のテストメールでは簡単に動作します。しかし、50,000通の本番メールボックスでは、そのスクリプトがデータを壊す確率は驚くほど高いです。

ネストされたMIMEマルチパート構造、Content-Transfer-Encodingのバリエーション(quoted-printable、base64、8bit)、RFC 2047エンコードの非ASCIIヘッダー、S/MIME署名、PGP暗号化、破損したMIME境界。それぞれが基本的なスクリプトには処理できないエッジケースです。そして検証の仕組みがなければ、いつ何を壊したかさえわかりません。

Redate.ioによるimapsync日付修正

Redate.ioはimapsync移行を含む、あらゆる移行ツールのシグネチャを自動認識します。メールボックスに接続(Google Workspace、Microsoft 365、または任意のIMAPサーバー)すると、無料分析で影響を受けたメール数を特定します。ガイドはOutlookでのimapsync日付修正Gmailをご覧ください。

独自の修正エンジンが多段階分析パイプラインで各メールを処理し、RFCコンプライアンス検証、メッセージ整合性の保持、修正前後の検証を行います。元のメッセージは「Redate.io - Originals」フォルダに30日間保持されます。

imapsyncで日付が壊れましたか? 無料分析を開始して、影響を受けたメール数を確認してください。