Väärinpäiväiset sähköpostit Exchange Online -migraation jälkeen

3 min

Klassinen maanantaiaamun skenaario

IMAP-migraatio Exchange Onlineen on juuri valmistunut. Eräajo päättyi virheettä Exchange-hallintakeskuksessa, postilaatikot ovat synkronoituja ja käyttäjät pääsevät kirjautumaan sisään. Suljet tietokoneesi perjantai-iltana tyytyväisenä.

Maanantaiaamuna tikettejä alkaa sadella. "Kaikki sähköpostini ovat perjantain päivältä." "Saapuneet-kansiosta ei saa mitään selvää." "Vanhoja sähköposteja puuttuu." Mitään ei oikeasti puutu: sähköpostit ovat tallessa, mutta Outlook näyttää ne kaikki migraatiopäivän päivämäärällä alkuperäisen lähetyspäivän sijaan. Vuodelta 2019 peräisin oleva viesti näyttää saapuneen viime perjantaina. Koko postilaatikko vaikuttaa sisältävän vain tuoreita viestejä.

Tämä on yksi turhauttavimmista IMAP-migraatioiden ongelmista Exchange Onlineen, ja Microsoft dokumentoi sen lähes järjestelmällisesti puutteellisesti.

Miksi EAC-migraatio rikkoo päivämäärät

Kun käytät Exchange-hallintakeskusta (EAC) IMAP-migraation konfigurointiin paikalliselta palvelimelta (Dovecot, Courier, Cyrus, UW-IMAP tai jokin muu), Exchange Online muodostaa yhteyden lähdepalvelimeen IMAP-protokollalla, hakee viestit ja lisää ne kohdekäyttäjien postilaatikoihin oman sisäisen siirtoputkensa kautta.

Juuri siinä ongelma syntyy.

Jokainen Exchange-siirtoputken läpikäyvä sähköposti saa automaattisesti aikaleimallisen Received:-otsakkeen. Tämä on SMTP- ja IMAP-palvelimien vakiokäyttäytymistä vuosikymmenten ajalta: jokainen viestiin koskeva palvelin lisää oman aikaleimansa. Ongelma on siinä, että Outlook (erityisesti Windowsin Outlook tuoreissa versioissa) käyttää uusinta Received:-otsiketta näytön viitemääreenä silloin, kun muut metatiedot ovat moniselitteisiä.

Alkuperäinen Date:-otsikko, se joka kertoo milloin sähköposti todella lähetettiin RFC 2822:n tarkoittamassa mielessä, on yhä viestissä mukana. Sitä ei ole poistettu. Mutta se jää "varjoon" sen uuden Received:-otsikon alle, jonka Exchange lisäsi viestin siirron yhteydessä.

Samaan aikaan IMAP INTERNALDATE (se metatietokenttä, jota IMAP-palvelimet käyttävät viestien sisäiseen ajoitukseen ja joka ohjaa järjestystä useimmissa sähköpostiohjelmissa) asetetaan syöttöpäivämäärään, ei viestin alkuperäiseen päivämäärään. Exchange Onlinessa ei ole mitään natiivia tapaa säilyttää lähdepalvelimen INTERNALDATE-arvoa EAC:n eräajomigraatioissa.

EAC vs. kolmannen osapuolen työkalut: tärkeä ero

Kaksi tilannetta on syytä erottaa toisistaan. Sellaisilla työkaluilla kuin BitTitan MigrationWiz tai CloudM Migrate ongelma esiintyy niin ikään, mutta näissä työkaluissa on toisinaan konfigurointivaihtoehtoja (puoliksi dokumentoituja, usein piilotettu lisäasetuksiin), jotka yrittävät säilyttää joitakin päivämäärämetatietoja.

EAC:n natiivissa migraatiossa tällaisia vaihtoehtoja ei ole lainkaan. Microsoft ei tarjoa asetusta INTERNALDATE-arvojen säilyttämisen hallintaan eräajomigraation putkessa. Kyse on mustasta laatikosta: konfiguroit eräajon, käynnistät sen, ja Exchange tekee sisäisesti mitä haluaa. Ja se, mitä se järjestelmällisesti tekee, on päivätä viestit niiden syöttöhetken mukaan.

(Jos olet koskaan yrittänyt lukea EAC:n kautta siirretyn sähköpostin raakaotsikot, tiedät että Exchangen lisäämä Received:-kenttä on tunnistettavissa tuhansien joukosta: se sisältää viittauksia Microsoftin sisäisiin palvelimiin kuten *.protection.outlook.com tai *.prod.exchangelabs.com, ja aikaleima vastaa täsmälleen migraatioikkunaa.)

Miksi eräajon uudelleenkäynnistys ei auta

Monien IT-ylläpitäjien ensireaktio tähän ongelmaan on: "Jos poistan siirretyt postilaatikot ja käynnistän eräajon alusta, ehkä päivämäärät ovat tällä kertaa oikein."

Se on ymmärrettävää. Mutta se ei toimi.

Ongelma ei ole eräajon konfiguraatiossa. Se ei ole asetuksessa, jota olisi unohdettu rastittaa. Se on Exchange-siirtoputken arkkitehtuurissa, joka on identtinen jokaisessa migraatiossa. Eräajon uudelleenkäynnistys tuottaa täsmälleen saman tuloksen: samat Received:-otsikot uudella migraatiopäivämäärällä ja samat virheelliset INTERNALDATE-arvot. Aikaa on kulunut hukkaan ja käyttäjät on häiritty turhaan toistamiseen.

Jotkut ylläpitäjät yrittävät myös muuttaa Outlookin lajitteluasetuksia ("lajittele lähetyspäivän mukaan" vastaanotetun sijaan). Lajittelu lähetyspäivän mukaan ei ole ratkaisu. Se on laastari. Date:-otsikko ja INTERNALDATE pysyvät virheellisinä sellaisille sähköpostiohjelmille, joissa tämä asetus ei ole käytettävissä

Aiheeseen liittyvät artikkelit