Mis juhtus teie postkastiga
Olete äsja lõpetanud oma domeeni migratsiooni Zoho Mailist Microsoft 365-i. Exchange Online'i infrastruktuur on paigas, postkastid on loodud, MX-kirjed on uuendatud. Ja siis, esmaspäeva hommikul, avab üks kasutaja Outlooki ja märkab, et kõik 2021. aasta e-kirjad näitavad tänast kuupäeva. Teine kasutaja avastab, et tema eelmise aasta sõnumid on postkasti tipus, nagu oleksid need just saabunud. Klienditoe piletid hakkavad laekuma.
See ei ole Outlooki viga. Samuti pole see Zohospetsiifiline probleem. See on oodatav, kuid halvasti dokumenteeritud käitumine mis tahes IMAP-migratsioonil Exchange Online'i - ja täpselt selle mõistmine on esimene samm probleemi korrektseks lahendamiseks.
Tehniline põhjus: INTERNALDATE ja Received-päised
IMAP-serverile salvestatud e-kiri koosneb kahest eraldiseisvast osast: sõnumi töötlemata sisust (RFC 2822 päised, keha, manused) ja IMAP-serveri hallatavatest salvestusmetaandmetest, sealhulgas INTERNALDATE. Just seda metaandmete väärtust kasutavad meilikliendid sõnumite kuvamiseks ja sortimiseks.
Töötlemata sõnumis määratletud Date:-päis (RFC 2822) näitab kuupäeva, millal saatja sõnumi koostas või saatis. INTERNALDATE on aga kuupäev, millal IMAP-server sõnumi vastu võttis või salvestas. Tavaliselt on need kaks väärtust tervel serveril sarnased. Pärast migratsiooni on lugu hoopis teine.
Kuidas IMAP-migratsioon kuupäevad rikub
Kui migratsionitööriist (Zoho Migration Wizard, imapsync, BitTitan või mõni muu) edastab sõnumi Zoho Mailist Exchange Online'i, toimub see IMAP-protokolli kaudu. Tööriist ühendub Zohoga, laadib sõnumi alla ja sisestab selle Exchange Online'i IMAP APPEND-käsu abil. Ja siin ongi probleem.
Exchange Online lisab igale sissetulevale sõnumile vastuvõtmisel uue Received:-päise sõnumi algusse. See päis kannab sisestamise täpset kuupäeva ja kellaaega - ehk siis migratsiooni kuupäeva. Mõned migratsionitööriistad püüavad algse INTERNALDATE väärtuse säilitada, edastades selle APPEND-käsu parameetrina. Teised seda ei tee, või teevad seda valesti - sel juhul omistab Exchange Online automaatselt vastuvõtmise kuupäeva uueks INTERNALDATE väärtuseks.
Tulemus: olgu tegemist 2019. või 2022. aastal saadetud e-kirjaga, selle INTERNALDATE osutab nüüd migratsiooni nädalale. Outlook loeb seda väärtust esimesena. Sorteerimine läheb katki.
Zoho Migration Wizardi spetsiifilised käitumuslikud omadused
Zoho pakub oma platvormi mahajätmiseks natiivselt migratsioonivahendit: Zoho Migration Wizardi. See tööriist on kasulik lihtsate migratsioonide puhul, kuid administraatorite foorumites on dokumenteeritud käitumine: see ei edasta alati algset INTERNALDATE väärtust sihtserverisse sisestamisel korrektselt.
Täpsemalt öeldes mõjutab probleem peamiselt migratsioone serveritele, mis lisavad süstemaatiliselt Received:-päise igale sissetulevale sõnumile - see ongi täpselt Exchange Online'i käitumine. Isegi kui Zoho Migration Wizard edastab algse kuupäeva APPEND-parameetrina, leiab Exchange Online'i loodud Received:-päis ennast päiseahela esimesele positsioonile, ja Outlook kasutab seda "e-kirja saabumisaja" määramiseks.
Administraatorid, kes kasutavad Zoholt lahkumiseks üldiseid IMAP-tööriistu nagu imapsync, puutuvad täpselt sama probleemiga kokku, mõnikord isegi raskemas vormis, sest imasynic vaikimisi konfiguratsioon ei ole Exchange Online'i jaoks optimeeritud. (Muide, kui olete kunagi imapsync-logi rida-realt läbi sõelanud, otsides kaks öösel sünkroniseerimisehäiret, siis teate: võimas tööriist, aga piirjuhtumite suhtes mitte eriti andestav.)
Miks Outlook näitab valet kuupäeva
Outlook ei kasuta e-kirja kuupäeva kuvamiseks üksnes Date:-päist. Enamikus vaadetes kasutatakse IMAP/Exchange-serveri poolt edastatud INTERNALDATE väärtust, eriti postkasti sortimiseks. Algne Date:-päis on sõnumis küll olemas ja puutumata, kuid seda eiratakse INTERNALDATE kasuks.
Seetõttu ei lahenda Outlooki valik „Sordi saatmiskuupäeva järgi