Klasický scénář pondělního rána
Právě jste dokončili migraci IMAP do Exchange Online. Batch proběhl bez chyb v centru správy Exchange, schránky jsou synchronizované, uživatelé se mohou přihlásit. V pátek večer zavíráte notebook s pocitem dobře odvedené práce.
V pondělí ráno začnou chodit tickety. "Všechny moje e-maily mají datum pátku." "Historii doručené pošty nemůžu použít." "Chybí mi staré zprávy." Ve skutečnosti nic nechybí: e-maily jsou tam, ale Outlook je zobrazuje s datem migrace místo původního data odeslání. E-mail z roku 2019 vypadá, jako by přišel minulý pátek. Výsledek: celá schránka zdánlivě obsahuje jen nedávné zprávy.
Jde o jeden z nejfrustrujících problémů migrace IMAP do Exchange Online, a Microsoft ho ve své dokumentaci téměř systematicky přehlíží.
Proč migrace přes EAC kazí data
Když použijete centrum správy Exchange (EAC) k nastavení migrace IMAP ze zdrojového serveru (Dovecot, Courier, Cyrus, UW-IMAP, nezáleží na tom), Exchange Online se připojí k vašemu zdrojovému serveru přes IMAP, načte zprávy a vloží je do cílových schránek vlastním interním transportním kanálem.
Právě tady vzniká problém.
Každý e-mail, který prochází transportním kanálem Exchange, automaticky dostane opatřenou hlavičku Received: s časovým razítkem. Jde o standardní chování SMTP a IMAP serverů po celá desetiletí: každý server, který se zprávy dotkne, přidá své časové razítko. Problém je, že Outlook (zejména Outlook pro Windows v novějších verzích) používá nejnovější hlavičku Received: jako referenci pro zobrazení, pokud jsou ostatní metadata nejednoznačná.
Původní hlavička Date: (ta, která říká, kdy byl e-mail skutečně odeslán ve smyslu RFC 2822) je ve zprávě stále přítomna. Nebyla odstraněna. Ale je „zastíněna