Perche imapsync e popolare (e perche le date si rompono lo stesso)
imapsync e lo strumento di migrazione email di riferimento per gli amministratori di sistema Linux, i provider di hosting e chiunque preferisca soluzioni open source. Creato da Gilles Lamiral, imapsync e attivamente mantenuto dal 2001 ed e stato utilizzato per milioni di migrazioni di caselle in tutto il mondo. Supporta praticamente tutti i server IMAP: Dovecot, Courier, Cyrus, Zimbra, Exchange, Gmail e decine di altri.
imapsync ha la fama di essere completo e configurabile. Gli amministratori apprezzano il suo controllo granulare sulle cartelle da migrare, la gestione dei duplicati e la mappatura dei nomi delle cartelle tra server IMAP diversi. Ma nonostante tutto questo controllo, un problema persiste: le date delle email spesso non vengono preservate dopo una migrazione imapsync. Gli utenti aprono la casella dopo la migrazione e constatano che ogni email mostra la data di migrazione. E esasperante, soprattutto perche imapsync dovrebbe gestire correttamente le date.
Come imapsync gestisce l'INTERNALDATE
Il tentativo di preservazione dell'INTERNALDATE
imapsync tenta effettivamente di preservare l'INTERNALDATE di ogni email durante la migrazione. L'INTERNALDATE e il timestamp che il server IMAP memorizza come metadato per ogni messaggio, separato dagli header dell'email. Quando imapsync copia un messaggio dalla sorgente alla destinazione, legge l'INTERNALDATE dal server sorgente e lo trasmette al server di destinazione nel comando IMAP APPEND.
In teoria, questo dovrebbe preservare la data originale. In pratica, il risultato dipende dal comportamento del server di destinazione e dal modo in cui i client di posta interpretano i vari campi legati alle date nel messaggio.
Il problema dell'header "Received"
Anche quando imapsync riesce a preservare l'INTERNALDATE, il server di posta di destinazione aggiunge un nuovo header "Received" a ogni messaggio durante l'operazione APPEND. Questo header "Received" contiene il timestamp corrente - la data di migrazione. I client di posta come Outlook, Apple Mail e Thunderbird determinano la data di "ricezione" visualizzata leggendo l'header "Received" piu in alto, non l'INTERNALDATE. Quindi nonostante lo sforzo di imapsync per preservare l'INTERNALDATE, la data visibile nella maggior parte dei client resta comunque sbagliata.
E questa disconnessione fondamentale che causa la confusione. imapsync preserva un valore di data (INTERNALDATE), ma i client di posta ne mostrano un altro (il timestamp dell'header "Received"). Per un approfondimento tecnico su questo meccanismo, vedere perche le email mostrano la data sbagliata dopo la migrazione IMAP.
Il malinteso della FAQ di imapsync
La documentazione e la FAQ di imapsync affrontano il problema delle date ma lo presentano come una limitazione intrinseca. La FAQ suggerisce che "le date potrebbero non essere preservate" durante la migrazione IMAP e implica che sia semplicemente cosi che funziona il protocollo IMAP. Sebbene sia vero che il protocollo IMAP richieda ai server di aggiungere header "Received" all'inserimento dei messaggi, la FAQ crea l'impressione che il problema sia permanente e irreparabile.
Non e corretto. Gli header "Received" aggiunti durante la migrazione possono essere identificati e rimossi successivamente, ripristinando la visualizzazione della data originale nei client di posta. L'header "Date" originale (che registra quando l'email e stata inviata in origine) e sempre preservato da imapsync e serve come riferimento per la data corretta.
Identificare l'header di migrazione imapsync
Come si presenta l'header
imapsync di per se non aggiunge un header "Received" - lo fa il server IMAP di destinazione. L'header aggiunto durante una migrazione imapsync assomiglia generalmente a un header di inserimento IMAP standard del server di destinazione. Ad esempio, migrando verso un server Dovecot, l'header potrebbe assomigliare a:
Received: from localhost by mail.example.com;
Wed, 15 Jan 2025 09:14:22 +0100
L'identificatore chiave e che questo header "Received" e il piu in alto nella catena, il suo timestamp corrisponde alla data di esecuzione della migrazione imapsync, e generalmente fa riferimento a "localhost" o al nome host del server di destinazione piuttosto che a un server di posta esterno.
Confrontare le date
Per confermare il problema, confrontare il timestamp dell'header "Received" piu in alto con l'header "Date" dell'email. Se l'header "Received" indica gennaio 2025 ma l'header "Date" indica marzo 2020, l'header "Received" di migrazione e la causa della data di visualizzazione errata. Questo confronto si puo fare visualizzando il sorgente grezzo del messaggio in qualsiasi client di posta.
Perche le opzioni comuni di imapsync non risolvono il problema
Il flag --syncinternaldates
imapsync offre il flag --syncinternaldates, che imposta l'INTERNALDATE sul server di destinazione in modo che corrisponda all'header "Date" dell'email. E utile quando l'INTERNALDATE del server sorgente e gia sbagliato, ma non impedisce al server di destinazione di aggiungere un header "Received". La data visibile in Outlook e negli altri client resta la data di migrazione indipendentemente dal valore dell'INTERNALDATE.
L'opzione --addheader
imapsync puo aggiungere header personalizzati ai messaggi durante la migrazione, ma non puo impedire al server di destinazione di aggiungere il proprio header "Received". Il protocollo IMAP richiede ai server di registrare il timestamp di inserimento, e nessuna opzione di imapsync puo scavalcare questo comportamento a livello di server.
Script post-migrazione
Alcuni amministratori scrivono script post-migrazione personalizzati per rimuovere gli header "Received" indesiderati. Sembra ragionevole, soprattutto per il tipo di persona che ha scelto imapsync in primo luogo (qualcuno a proprio agio con la riga di comando). Ma la realta e ben piu complessa di un cerca-e-sostituisci su testo di header. Cosa succede quando lo script incontra un'email firmata S/MIME? O un messaggio multipart con confini MIME annidati e allegati codificati in base64? O un header con caratteri non-ASCII codificati RFC 2047? Un singolo byte fuori posto in un confine MIME puo silenziosamente corrompere un intero messaggio, distruggendo allegati o rendendo l'email illeggibile. E come si fa a confermare che 10.000 email corrette siano tutte integre? Per migliaia di email su piu caselle, lo scripting fai-da-te rappresenta un rischio sostanziale.
Correggere le date imapsync con Redate.io
Come Redate.io gestisce le migrazioni imapsync
Il motore di correzione proprietario di Redate.io e progettato specificatamente per questa categoria di problema. Dopo la connessione alla casella, Redate.io analizza ogni email e fa passare ogni messaggio attraverso una pipeline di analisi multistadio. Per le migrazioni imapsync, Redate.io rileva l'header "Received" inserito dal server applicando una corrispondenza di firme su centinaia di profili di migrazione noti, analizzando la catena completa degli header e incrociando i timestamp con l'header "Date" originale.
Non si tratta di una semplice modifica di header. Il motore di correzione gestisce la validazione di conformita RFC, la conservazione della struttura del messaggio (incluse le strutture multipart/alternative, gli allegati inline e le variazioni di Content-Transfer-Encoding) e il rilevamento delle firme digitali. Le email con firme S/MIME o PGP vengono automaticamente identificate e trattate in modo appropriato per preservare l'integrita delle firme.
Cosa si ottiene dopo la correzione
Ogni email corretta mostra la data di ricezione originale in tutti i client di posta. L'ordine cronologico e ripristinato. Ogni correzione passa attraverso una verifica di integrita prima di essere finalizzata. Il messaggio originale viene spostato in una cartella "Redate.io - Originals" e conservato per 30 giorni come rete di sicurezza.
Compatibilita con tutti i server di destinazione
Dato che imapsync viene utilizzato per migrare verso praticamente qualsiasi server IMAP, Redate.io supporta la stessa ampiezza di piattaforme di destinazione. Che la migrazione imapsync abbia puntato su Dovecot, Courier, Cyrus, Zimbra, Google Workspace, Microsoft 365 o qualsiasi altro server IMAP, Redate.io si collega e corregge le date.
Come correggere le date dopo una migrazione imapsync
Collegare la casella
Accedere a Redate.io e aggiungere la casella. Per Google Workspace o Microsoft 365, utilizzare l'opzione di delega admin. Per altri server IMAP (comuni negli scenari imapsync), inserire l'indirizzo del server, il nome utente e la password. Redate.io si collega tramite IMAP standard.
Analisi gratuita
Avviare l'analisi gratuita per identificare le email coinvolte. Il rapporto di analisi mostra il numero totale di email, quante hanno la data sbagliata e quale data di migrazione e stata rilevata. Questa analisi non costa nulla e offre un quadro chiaro prima di qualsiasi impegno.
Correggere e verificare
Selezionare un piano in base al numero di email coinvolte e avviare la correzione. L'avanzamento e visibile in tempo reale. A completamento, verificare i risultati consultando le date delle email nel proprio client. Le date dovrebbero essere tornate al loro posto.
Guide di correzione imapsync per piattaforma
- Correggere le date di migrazione imapsync in Outlook
- Correggere le date di migrazione imapsync in Gmail
Domande frequenti
Bisogna usare --syncinternaldates di imapsync prima di utilizzare Redate.io?
Non e necessario. Redate.io imposta il corretto INTERNALDATE durante il processo di correzione, indipendentemente dal valore attuale. Che imapsync abbia preservato l'INTERNALDATE originale o meno, Redate.io ricava il valore corretto dall'header "Date" originale.
Si possono correggere le date sul server sorgente prima di migrare con imapsync?
Se il server sorgente ha gia date errate (a seguito di una migrazione precedente), Redate.io puo correggerle prima o dopo la migrazione imapsync. Ma correggere le date sul server di destinazione dopo la migrazione e l'approccio piu comune e pratico.
Quante email puo elaborare Redate.io?
Redate.io gestisce caselle di qualsiasi dimensione. Sono disponibili piani per fino a 100.000 email per casella. Per le organizzazioni con molte caselle, Redate.io propone tariffe a volume.
La migrazione imapsync ha rovinato le date? Avviate un'analisi gratuita per vedere quante email sono coinvolte e correggetele con Redate.io.