Slib --syncinternaldates (a proč se nedodržuje)
Spustili jste příkaz imapsync. Přidali jste --syncinternaldates, protože jste si přečetli dokumentaci a jste pečliví. Migrace skončila, log říká, že všechno se přeneslo, nula chyb. Pak otevřete schránku v Outlooku a každý e-mail ukazuje včerejší datum.
Toto je jedna z nejčastějších frustrací s imapsync a mate správce systémů minimálně od roku 2017. Příznak --syncinternaldates má zachovávat IMAP INTERNALDATE při migraci. Technicky se o to pokouší. Ale "pokouší" v tom větě dělá hodně těžkou práci.
imapsync je open-source nástroj v Perlu napsaný Gillesem Lamiralem a opravdu je dobrý v tom, co dělá. Ale zachování dat není zcela v rukou imapsync a tam se věci komplikují.
Jak ve skutečnosti fungují IMAP data
V každém e-mailu existují tři různá "data":
- Hlavička Date: (RFC 2822) - datum, které e-mailový klient odesílatele vložil při vytvoření zprávy. Žije uvnitř těla zprávy a poštovní servery ji nikdy nemění.
- Hlavičky Received: - každý poštovní server přidá jednu se svým časovým razítkem. Tvoří řetězec od odesílatele k příjemci.
- INTERNALDATE - serverové časové razítko IMAP ovládající pořadí řazení zpráv ve schránce.
Když imapsync migruje zprávu, čte ji ze zdrojového serveru (včetně jejího INTERNALDATE) a zapisuje na cílový server pomocí IMAP APPEND. Příznak --syncinternaldates říká imapsync, aby předal zdrojový INTERNALDATE cílovému serveru.
Problém: cílový server nemá povinnost toto datum respektovat.
Proč cílové servery ignorují INTERNALDATE
IMAP specifikace (RFC 3501) říká, že pokud je s příkazem APPEND poskytnuto datum-čas, server by jej MĚL použít. "SHOULD" v jazyce RFC znamená "dělejte to, pokud nemáte dobrý důvod nedělat". Několik velkých e-mailových platforem rozhodlo, že dobrý důvod mají.
Microsoft 365 je největší provinilec. Exchange pipeline přidá novou Received hlavičku s aktuálním datem a pak nastaví INTERNALDATE podle tohoto doručovacího razítka. Nezáleží, jaké datum si imapsync vyžádal.
Google Workspace (Gmail) se chová jinak, ale také může způsobit problémy. Gmail většinou respektuje INTERNALDATE z APPEND, ale přidá vlastní Received hlavičku. Pokud e-mailový klient upřednostňuje Received hlavičky (a Outlook přesně to dělá), data se zobrazí špatně.
Časté chyby příkazového řádku imapsync
Zapomenutí --syncinternaldates
Příznak není ve výchozím nastavení zapnutý.
Použití --syncinternaldates s --addheader
Přidávání hlaviček modifikuje zprávu, což může vést server k jejímu ošetření jako "nové".
Záměna --minage a --maxage se zachováním dat
Tyto příznaky filtrují zprávy k migraci podle stáří. Neovlivňují zpracování dat na cíli.
Zpoždění SSL způsobující drift časových razítek
Při migraci přes TLS se latence kumuluje v rozsáhlých migracích.
Čtení logů imapsync
msg source stratemind/42 {5765} D:2019-01-15 13:22:07 -> dest stratemind/42 {5765} D:2019-01-15 13:22:07
Obě data se shodují. To znamená, že imapsync odeslal správný INTERNALDATE. Ale neznamená to, že cílový server datum skutečně uložil. imapsync hlásí, co požadoval, ne co server přijal.
Migrace imapsync ve velkém měřítku
Migrace jedné schránky s imapsync je otravná, když se data rozbijí. Ale MSP a IT oddělení provozující imapsync na stovkách schránek čelí zcela jinému rozměru problému.
Vlastní opravy a jejich limity
Všechny přístupy na fórech sdílejí stejné základní problémy. S/MIME podpisy, vnořené MIME struktury, RFC 2047 kódování, PGP. Skript fungující na 50 testovacích zprávách se zadrhne na produkční schránce s 30 000 zprávami.
Jak Redate.io opravuje data po imapsync
Původní hlavička Date: je po migraci imapsync vždy nedotčená. imapsync věrně přenáší surovou zprávu; problém zobrazení způsobuje zpracování metadat cílovým serverem.
Redate.io se připojí přímo ke schránce (Google Workspace, Microsoft 365 nebo jakýkoli IMAP server), skenuje e-maily s datovými anomáliemi a aplikuje cílenou korekci metadat pomocí proprietárního enginu analýzy řetězce hlaviček a rekonstrukce dat.
Každý opravený e-mail prochází individuálním ověřením. Originály se uchovávají ve viditelné složce Redate.io - Originals po dobu 30 dnů.
- Oprava dat imapsync v Outlooku
- Oprava dat imapsync v Gmailu
- Oprava dat imapsync v Microsoft 365
- Oprava dat imapsync v Google Workspace
Redate.io funguje i na migracích provedených před měsíci nebo lety. Hlavička Date: neexpiruje.
Migrovali jste s imapsync a zůstala Vám špatná data? Spusťte bezplatné skenování a zjistěte, kolik e-mailů je postiženo.