Le importazioni IMAP di Exchange e le date delle email
Exchange Online assegna una data a ogni messaggio in una casella di posta, ed è questa la data che Outlook mostra e usa per l'ordinamento. Per un'email che arriva da Internet, è il momento della consegna. Per un'email copiata da una migrazione, è la data che la migrazione ha assegnato alla copia: quella originale, se la migrazione la trasmette, oppure il giorno dell'importazione, se non lo fa.
È qui che nasce la corruzione delle date durante le importazioni IMAP in Exchange. Exchange Online non sovrascrive una data che gli viene fornita. Ma quando un'importazione non trasmette la data originale di ogni email, la copia di un messaggio vecchio di 7 anni riceve la data dell'importazione, come se fosse appena stato consegnato.
Il risultato? Si importano 4.000 email da un vecchio server IMAP a Exchange Online, e le email mostrano la data di importazione invece della propria. Email del 2018, 2020, 2023, datate a oggi. Gli utenti aprono Outlook lunedì mattina e vedono un muro di messaggi con la stessa data.
Come funziona l'assistente migrazione EAC
L'Exchange Admin Center (EAC) include un assistente migrazione integrato per le importazioni IMAP. È l'interfaccia grafica a cui la maggior parte degli amministratori Exchange si rivolge per prima: si va in Destinatari, poi Migrazione, si crea un nuovo batch, si seleziona "Migra a Exchange Online", si sceglie IMAP come fonte, si carica un CSV con la mappatura delle caselle e si avvia il batch.
Dietro le quinte, l'assistente migrazione EAC crea un New-MigrationBatch con il tipo di endpoint impostato su IMAP. Exchange si connette al server IMAP di origine, legge ogni messaggio e lo scrive nella casella di destinazione Exchange Online. Semplice sulla carta.
Ma ecco il problema in cui si imbattono gli amministratori. Microsoft non documenta come la migrazione imposta la data di ciascun messaggio copiato, e gli amministratori segnalano email che risultano con la data della sincronizzazione invece della data in cui sono state ricevute. Outlook, OWA e ogni altro client connesso a quella casella usano poi questa data per la visualizzazione e l'ordinamento.
L'header Date: originale del 2019? Ancora lì, sepolto negli header del messaggio. Ma Exchange non lo usa per l'ordine di ordinamento nella posta in arrivo.
Date: Fri, 22 Nov 2019 16:08:33 +0100
PowerShell: New-MailboxImportRequest e lo stesso problema
Gli amministratori che preferiscono la riga di comando spesso ricorrono a New-MailboxImportRequest per importare file PST, o New-MigrationBatch con endpoint IMAP per migrazioni server-to-server. L'aspettativa è che PowerShell offra più controllo. E lo fa, per alcune cose. Non per le date.
New-MailboxImportRequest importa file PST nelle caselle Exchange Online. Il file PST contiene i timestamp originali di ogni messaggio. Ma il cmdlet PowerShell non ha un parametro che controlli quale data riceve ciascun messaggio importato. Non esiste un flag -PreserveDates (e, a dire il vero, gli amministratori lo hanno cercato).
New-MigrationBatch -SourceEndpoint con un endpoint IMAP funziona in modo simile all'assistente EAC, solo senza l'interfaccia grafica. Stessa connessione IMAP, stesso risultato per le date. Il cmdlet offre parametri per filtrare per intervallo di date (-StartAfter, -CompleteAfter) e per escludere cartelle, ma niente che controlli come Exchange gestisce il timestamp del messaggio in arrivo.
Per essere precisi, questo influisce principalmente sulla data di visualizzazione e sull'ordine di ordinamento. Il contenuto del messaggio, compreso l'header Date originale, arriva intatto. Solo la data assegnata alla copia è sbagliata, ed è quella dietro tutto ciò che è visibile all'utente.
Importazione IMAP diretta vs. strumenti di terze parti
Fa differenza usare l'importazione IMAP nativa di Exchange o uno strumento di terze parti come BitTitan MigrationWiz o CloudM? La risposta breve: il problema delle date si verifica in entrambi i casi, ma per ragioni leggermente diverse.
Con l'importazione IMAP nativa di Exchange (assistente EAC o PowerShell), Exchange si connette direttamente al server IMAP di origine e preleva i messaggi. Come venga impostata la data di ciascuna copia dipende da Microsoft, e non è documentato.
Con strumenti di terze parti, lo strumento di migrazione agisce da intermediario. Legge dalla fonte, potenzialmente trasforma il messaggio e scrive in Exchange Online. Quando lo strumento scrive via IMAP, Exchange Online mantiene la data che lo strumento trasmette: se lo strumento invia la data originale di ogni email, la copia la conserva; altrimenti, la copia riceve la data della migrazione. Alcuni strumenti aggiungono anche un proprio header Received: durante l'inoltro.
La differenza pratica? Gli header lasciati non sono uguali da uno strumento all'altro, quindi una correzione non può basarsi su un unico schema fisso. Il problema sottostante è identico: la data mostrata non è la data originale dell'email.
Perché le regole di trasporto di Exchange Online peggiorano le cose
Ecco qualcosa che sorprende anche gli amministratori Exchange esperti. Exchange Online ha regole di trasporto (ora chiamate "regole del flusso di posta" nel centro di amministrazione) che possono attivarsi sui messaggi importati. Se l'organizzazione ha regole che aggiungono header, disclaimer o modificano messaggi in base a condizioni, quelle regole possono elaborare anche le email importate.
Questo significa che un'email del 2020 potrebbe ricevere un disclaimer in calce aggiunto, o un X-header timbrato da una regola di conformità che non esisteva quando l'email originale è stata inviata. La corruzione delle date è il sintomo più visibile, ma le regole di trasporto possono creare modifiche inattese aggiuntive.
Si possono disattivare le regole di trasporto durante l'importazione? Sì, temporaneamente. Ma la maggior parte degli amministratori non ci pensa perché non si aspetta che la pipeline di trasporto elabori messaggi migrati. Quando si accorgono di cosa è successo, il batch di importazione è completo e il danno è fatto.
Cosa significano le date sbagliate negli ambienti Exchange
Gli ambienti Exchange tendono a essere ambienti aziendali. Studi legali, istituzioni finanziarie, organizzazioni sanitarie, enti governativi. Non sono account Gmail personali dove una data sbagliata è leggermente fastidiosa. Sono caselle dove i timestamp delle email hanno significato legale e normativo.
Un blocco legale in Exchange preserva le email in base a intervalli di date. Se ogni email importata mostra la data di importazione anziché la data originale, il blocco cattura l'insieme sbagliato di messaggi. Una ricerca eDiscovery per "tutte le comunicazioni tra gennaio e marzo 2022" non restituisce nulla perché quelle email ora mostrano aprile 2026.
Le policy di conservazione hanno lo stesso problema. Un'organizzazione con una policy di conservazione di 3 anni potrebbe accidentalmente eliminare email che sembrano del 2026 (e quindi "recenti") quando in realtà sono del 2019 e dovrebbero essere conservate. O il contrario: email che avrebbero dovuto essere eliminate secondo la policy di conservazione restano perché la loro data apparente è recente.
Uno scenario di fine 2025: un MSP ha migrato circa 200 caselle da un provider Exchange ospitato a Microsoft 365 usando l'assistente migrazione EAC. Tre settimane dopo, il responsabile compliance del cliente ha segnalato che i rapporti trimestrali di archiviazione email mostravano ogni messaggio archiviato con la stessa data. L'intero archivio email, che copriva 5 anni, sembrava essere arrivato in un singolo martedì di novembre.
Correggere le date di importazione IMAP in Exchange
L'header Date: originale sopravvive intatto all'importazione. L'importazione non modifica gli header RFC 2822 originali all'interno del messaggio. Quella data originale è il punto di ancoraggio per la correzione.
Redate.io si connette alla casella Exchange Online (ciascuna persona accede con il proprio account Microsoft), scansiona i messaggi con anomalie di data causate dall'importazione IMAP e applica un motore di correzione proprietario che esegue validazione della conformità RFC, preservazione della struttura del messaggio e ricostruzione mirata dei metadati. Redate non ha bisogno di sapere quale strumento ha eseguito l'importazione: individua le email la cui data visualizzata non corrisponde alla data originale.
Ogni messaggio corretto viene verificato individualmente: integrità del contenuto, checksum degli allegati, posizionamento nelle cartelle e threading delle conversazioni. Gli originali non vengono mai eliminati: restano in una cartella di backup visibile nella propria casella, finché non li elimina l'utente stesso. Se qualcosa sembra errato, il rollback è a un clic di distanza.
Perché non correggerlo con uno script PowerShell? Perché capire il problema dell'header Received è la parte facile. Correggere 8.000 email in 50 caselle senza corrompere messaggi firmati S/MIME, rompere strutture MIME annidate, rovinare header non-ASCII RFC 2047 o perdere le assegnazioni delle cartelle, in effetti, quella è la parte difficile. Come si verifica che ogni singolo messaggio corretto in un ambiente di produzione sia intatto? Uno script che funziona su una casella di test con 30 messaggi non regge i casi limite del mondo reale. Quel contratto con un allegato da 42 MB e tre immagini inline in una struttura multipart/mixed dentro un wrapper multipart/alternative? Buona fortuna.
Guide per piattaforma
La correzione delle date si applica a livello della casella Exchange Online, ma gli utenti accedono alla loro email attraverso diversi client. Ciascuno visualizza le date in modo diverso:
- Correggere le date di importazione IMAP in Outlook
- Correggere le date di importazione IMAP in OWA (Outlook sul Web)
Cerca un contesto più ampio sui problemi di date in Microsoft 365 con diversi strumenti di migrazione? Consulti la guida completa per correggere le date email dopo migrazione a Microsoft 365.
L'importazione IMAP in Exchange ha lasciato le caselle con date sbagliate? Inizi con una scansione gratuita per vedere quante email sono interessate e quanto costa la correzione, senza carta di credito.