Exchange IMAP: Γιατί Χαλάνε οι Ημερομηνίες Email

8 λεπ. ανάγνωσης Τελευταία ενημέρωση:

Εισαγωγές Exchange IMAP και οι Ημερομηνίες των Email σας

Το Exchange Online δίνει σε κάθε μήνυμα ενός γραμματοκιβωτίου μια ημερομηνία, και αυτή είναι η ημερομηνία που εμφανίζει και χρησιμοποιεί για ταξινόμηση το Outlook. Για ένα email που φτάνει από το διαδίκτυο, είναι η στιγμή της παράδοσης. Για ένα email που αντιγράφεται μέσω μεταφοράς, είναι όποια ημερομηνία δώσει η μεταφορά στην αντιγραφή: η αρχική ημερομηνία, όταν η μεταφορά τη διαβιβάζει, ή η ημέρα της εισαγωγής, όταν δεν τη διαβιβάζει.

Από εκεί προέρχεται η καταστροφή ημερομηνιών κατά τις εισαγωγές Exchange IMAP. Το Exchange Online δεν αντικαθιστά μια ημερομηνία που του δίνεται. Όμως όταν μια εισαγωγή δεν μεταφέρει την αρχική ημερομηνία κάθε email, η αντιγραφή ενός μηνύματος 7 ετών παίρνει την ημερομηνία της εισαγωγής, σαν να είχε μόλις παραδοθεί.

Το αποτέλεσμα; Εισάγετε 4.000 email από έναν παλιό διακομιστή IMAP στο Exchange Online, και τα email εμφανίζουν την ημερομηνία της εισαγωγής αντί για τη δική τους. Email από το 2018, το 2020, το 2023, με σημερινή ημερομηνία. Οι χρήστες σας ανοίγουν το Outlook τη Δευτέρα το πρωί και βλέπουν έναν τοίχο από μηνύματα με την ίδια ακριβώς ημερομηνία.

Πώς Λειτουργεί ο Οδηγός Μεταφοράς του Exchange Admin Center

Το Exchange Admin Center (EAC) περιλαμβάνει έναν ενσωματωμένο οδηγό μεταφοράς για εισαγωγές IMAP. Είναι η γραφική διεπαφή στην οποία στρέφονται πρώτα οι περισσότεροι διαχειριστές Exchange: πηγαίνετε στο Recipients, μετά στο Migration, δημιουργείτε ένα νέο batch, επιλέγετε "Migrate to Exchange Online", ορίζετε το IMAP ως πηγή, ανεβάζετε ένα αρχείο CSV με τις αντιστοιχίσεις γραμματοκιβωτίων, και ξεκινάτε το batch.

Στο παρασκήνιο, ο οδηγός μεταφοράς του EAC δημιουργεί ένα New-MigrationBatch με τον τύπο endpoint ορισμένο σε IMAP. Το Exchange συνδέεται στον διακομιστή IMAP πηγή σας, διαβάζει κάθε μήνυμα, και το γράφει στο γραμματοκιβώτιο προορισμού στο Exchange Online. Αρκετά απλό στα χαρτιά.

Αυτό όμως είναι το πρόβλημα που συναντούν οι διαχειριστές. Η Microsoft δεν τεκμηριώνει πώς η μεταφορά ορίζει την ημερομηνία κάθε αντιγραφόμενου μηνύματος, και οι διαχειριστές αναφέρουν email που εμφανίζονται με την ημερομηνία του συγχρονισμού αντί για την ημερομηνία λήψης τους. Το Outlook, το OWA, και κάθε άλλος client συνδεδεμένος σε αυτό το γραμματοκιβώτιο χρησιμοποιούν στη συνέχεια αυτή την ημερομηνία για εμφάνιση και ταξινόμηση.

Η αρχική κεφαλίδα Date: από το 2019; Είναι ακόμα εκεί, θαμμένη μέσα στις κεφαλίδες του μηνύματος. Όμως το Exchange δεν τη χρησιμοποιεί για τη σειρά ταξινόμησης στα εισερχόμενα σας.

Date: Fri, 22 Nov 2019 16:08:33 +0100

PowerShell: New-MailboxImportRequest και το Ίδιο Πρόβλημα

Οι διαχειριστές που προτιμούν τη γραμμή εντολών συχνά καταφεύγουν στο New-MailboxImportRequest για την εισαγωγή αρχείων PST, ή στο New-MigrationBatch με endpoints IMAP για μεταφορές από διακομιστή σε διακομιστή. Η προσδοκία είναι ότι το PowerShell δίνει περισσότερο έλεγχο. Και το κάνει, για ορισμένα πράγματα. Όχι για τις ημερομηνίες.

Το New-MailboxImportRequest εισάγει αρχεία PST σε γραμματοκιβώτια Exchange Online. Το αρχείο PST περιέχει τις αρχικές χρονοσφραγίδες κάθε μηνύματος. Όμως το cmdlet του PowerShell δεν έχει παράμετρο που να ελέγχει ποια ημερομηνία θα λάβει κάθε εισαγόμενο μήνυμα. Δεν υπάρχει σημαία -PreserveDates (και πιστέψτε με, διαχειριστές την έχουν αναζητήσει).

Το New-MigrationBatch -SourceEndpoint με endpoint IMAP λειτουργεί όμοια με τον οδηγό του EAC, απλά χωρίς τη γραφική διεπαφή. Ίδια σύνδεση IMAP, ίδιο αποτέλεσμα για τις ημερομηνίες. Το cmdlet προσφέρει παραμέτρους για φιλτράρισμα κατά εύρος ημερομηνιών (-StartAfter, -CompleteAfter) και εξαίρεση φακέλων, αλλά τίποτα που να ελέγχει πώς το Exchange χειρίζεται τη χρονοσφραγίδα του εισερχόμενου μηνύματος.

Για να είμαστε ακριβείς, αυτό επηρεάζει κυρίως την ημερομηνία εμφάνισης και τη σειρά ταξινόμησης. Το περιεχόμενο του μηνύματος, συμπεριλαμβανομένης της αρχικής κεφαλίδας Date, φτάνει ανέπαφο. Μόνο η ημερομηνία που δόθηκε στην αντιγραφή είναι λάθος, και αυτή είναι εκείνη πίσω από όλα όσα βλέπει ο χρήστης.

Άμεση Εισαγωγή IMAP εναντίον Εργαλείων Τρίτων

Έχει σημασία αν χρησιμοποιήσετε την εγγενή εισαγωγή IMAP του Exchange ή ένα εργαλείο τρίτων όπως το BitTitan MigrationWiz ή το CloudM; Η σύντομη απάντηση: το πρόβλημα των ημερομηνιών εμφανίζεται και στις δύο περιπτώσεις, αλλά για ελαφρώς διαφορετικούς λόγους.

Με την εγγενή εισαγωγή IMAP του Exchange (οδηγός EAC ή PowerShell), το ίδιο το Exchange συνδέεται στον διακομιστή IMAP πηγή και τραβάει τα μηνύματα. Πώς ορίζει την ημερομηνία κάθε αντιγραφής εξαρτάται από τη Microsoft, και δεν είναι τεκμηριωμένο.

Με εργαλεία τρίτων, το εργαλείο μεταφοράς λειτουργεί ως ενδιάμεσος. Διαβάζει από την πηγή, ενδεχομένως μετασχηματίζει το μήνυμα, και γράφει στο Exchange Online. Όταν το εργαλείο γράφει μέσω IMAP, το Exchange Online διατηρεί την ημερομηνία που του δίνει το εργαλείο: αν το εργαλείο στέλνει την αρχική ημερομηνία κάθε email, η αντιγραφή τη διατηρεί· αν όχι, η αντιγραφή παίρνει την ημερομηνία της μεταφοράς. Ορισμένα εργαλεία προσθέτουν επίσης τη δική τους κεφαλίδα Received: κατά τη μετάδοση.

Η πρακτική διαφορά; Οι κεφαλίδες που αφήνει πίσω κάθε εργαλείο δεν είναι ίδιες από το ένα εργαλείο στο άλλο, οπότε μια διόρθωση δεν μπορεί να βασίζεται σε ένα σταθερό μοτίβο. Το υποκείμενο πρόβλημα είναι το ίδιο: η εμφανιζόμενη ημερομηνία δεν είναι η αρχική ημερομηνία του email.

Γιατί οι Κανόνες Μεταφοράς (Transport Rules) του Exchange Online Επιδεινώνουν το Πρόβλημα

Υπάρχει κάτι που αιφνιδιάζει και πεπειραμένους διαχειριστές Exchange. Το Exchange Online έχει transport rules (πλέον ονομάζονται "mail flow rules" στο admin center) που μπορούν να ενεργοποιηθούν σε εισαγόμενα μηνύματα. Αν ο οργανισμός σας έχει κανόνες που σφραγίζουν κεφαλίδες, προσθέτουν disclaimers, ή τροποποιούν μηνύματα βάσει συνθηκών, αυτοί οι κανόνες μπορεί να επεξεργαστούν και τα εισαγόμενα email.

Αυτό σημαίνει ότι ένα email από το 2020 μπορεί να αποκτήσει ένα υποσέλιδο disclaimer, ή μια κεφαλίδα X σφραγισμένη από έναν κανόνα συμμόρφωσης που δεν υπήρχε όταν στάλθηκε το αρχικό email. Η καταστροφή ημερομηνιών είναι το πιο ορατό σύμπτωμα, αλλά οι transport rules μπορούν να δημιουργήσουν επιπλέον, ανεπάντεχες τροποποιήσεις.

Μπορείτε να απενεργοποιήσετε τους transport rules κατά την εισαγωγή; Ναι, προσωρινά. Όμως οι περισσότεροι διαχειριστές δεν το σκέφτονται, γιατί καταρχάς δεν περιμένουν ότι η transport pipeline θα επεξεργαστεί τα μεταφερόμενα μηνύματα. Μέχρι να καταλάβουν τι έγινε, το batch εισαγωγής έχει ολοκληρωθεί και η ζημιά έχει γίνει.

Τι Σημαίνουν οι Λανθασμένες Ημερομηνίες για τα Περιβάλλοντα Exchange

Τα περιβάλλοντα Exchange τείνουν να είναι επιχειρηματικά περιβάλλοντα. Δικηγορικά γραφεία, χρηματοπιστωτικά ιδρύματα, οργανισμοί υγείας, κρατικές υπηρεσίες. Αυτοί δεν είναι προσωπικοί λογαριασμοί Gmail όπου μια λάθος ημερομηνία είναι ελαφρώς ενοχλητική. Είναι γραμματοκιβώτια όπου οι χρονοσφραγίδες των email έχουν νομική και κανονιστική σημασία.

Ένα litigation hold στο Exchange διατηρεί email βάσει εύρους ημερομηνιών. Αν κάθε εισαγόμενο email εμφανίζει την ημερομηνία εισαγωγής αντί για την αρχική ημερομηνία, το hold συλλαμβάνει το λάθος σύνολο μηνυμάτων. Μια αναζήτηση eDiscovery για "όλες τις επικοινωνίες μεταξύ Ιανουαρίου και Μαρτίου 2022" δεν επιστρέφει τίποτα, επειδή αυτά τα email εμφανίζουν πλέον Απρίλιο του 2026.

Οι πολιτικές διατήρησης (retention policies) πέφτουν στο ίδιο πρόβλημα. Ένας οργανισμός με πολιτική διατήρησης 3 ετών μπορεί να διαγράψει κατά λάθος email που φαίνονται να είναι από το 2026 (και άρα "νέα") ενώ στην πραγματικότητα είναι από το 2019 και θα έπρεπε να διατηρηθούν. Ή το αντίθετο: email που θα έπρεπε να έχουν διαγραφεί βάσει της πολιτικής διατήρησης παραμένουν, επειδή η φαινομενική τους ημερομηνία είναι πρόσφατη.

Ένα σενάριο από τα τέλη του 2025: ένας MSP μετέφερε περίπου 200 γραμματοκιβώτια από έναν πάροχο hosted Exchange στο Microsoft 365, χρησιμοποιώντας τον οδηγό μεταφοράς του EAC. Τρεις εβδομάδες αργότερα, ο υπεύθυνος συμμόρφωσης του πελάτη εντόπισε ότι οι τριμηνιαίες αναφορές αρχειοθέτησης email έδειχναν κάθε αρχειοθετημένο μήνυμα με την ίδια ημερομηνία. Ολόκληρο το αρχείο email, που έφτανε 5 χρόνια πίσω, φαινόταν να έχει φτάσει μία μόνο Τρίτη του Νοεμβρίου.

Διόρθωση Ημερομηνιών Εισαγωγής Exchange IMAP

Η αρχική κεφαλίδα Date: επιβιώνει ανέπαφη μέσα από την εισαγωγή. Η εισαγωγή δεν τροποποιεί τις αρχικές κεφαλίδες RFC 2822 μέσα στο μήνυμα. Αυτή η αρχική ημερομηνία είναι το σημείο αναφοράς για τη διόρθωση.

Το Redate.io συνδέεται στο γραμματοκιβώτιο Exchange Online (κάθε άτομο συνδέεται με τον δικό του λογαριασμό Microsoft), αναλύει τα μηνύματα για ανωμαλίες ημερομηνιών που προκλήθηκαν από την εισαγωγή IMAP, και εφαρμόζει μια ιδιόκτητη μηχανή διόρθωσης που εκτελεί επικύρωση συμμόρφωσης RFC, διατήρηση της δομής του μηνύματος, και στοχευμένη ανακατασκευή μεταδεδομένων. Το Redate δεν χρειάζεται να γνωρίζει ποιο εργαλείο έκανε την εισαγωγή: βρίσκει τα email των οποίων η εμφανιζόμενη ημερομηνία δεν ταιριάζει με την αρχική τους ημερομηνία.

Κάθε διορθωμένο μήνυμα επαληθεύεται ξεχωριστά: ακεραιότητα περιεχομένου, checksums συνημμένων, τοποθέτηση σε φάκελο, και αλληλουχία συνομιλίας. Τα αρχικά μηνύματα παραμένουν σε έναν ορατό φάκελο αντιγράφου ασφαλείας μέσα στο δικό σας γραμματοκιβώτιο, μέχρι να τα διαγράψετε εσείς οι ίδιοι. Αν κάτι φαίνεται λάθος, η επαναφορά απέχει ένα κλικ.

Γιατί να μη διορθωθεί με ένα σκριπτ PowerShell; Επειδή η κατανόηση του προβλήματος της κεφαλίδας Received είναι το εύκολο μέρος. Η διόρθωση 8.000 email σε 50 γραμματοκιβώτια χωρίς να καταστραφούν μηνύματα υπογεγραμμένα με S/MIME, χωρίς να σπάσουν εμφωλευμένες δομές MIME, χωρίς να αλλοιωθούν κεφαλίδες non-ASCII RFC 2047, και χωρίς να χαθούν οι αντιστοιχίσεις φακέλων, είναι το δύσκολο μέρος. Πώς επαληθεύετε ότι κάθε επιμέρους διορθωμένο μήνυμα σε ένα περιβάλλον παραγωγής είναι ανέπαφο, ότι δεν χάθηκε κανένα συνημμένο, ότι δεν έσπασε κανένα νήμα συνομιλίας; Ένα σκριπτ που δουλεύει σε ένα δοκιμαστικό γραμματοκιβώτιο με 30 μηνύματα θα κολλήσει σε πραγματικές ακραίες περιπτώσεις. Εκείνο το συμβόλαιο με το συνημμένο των 42 MB και τις τρεις ενσωματωμένες εικόνες μέσα σε μια δομή multipart/mixed εντός ενός περιβλήματος multipart/alternative; Καλή τύχη.

Οδηγοί ανά Πλατφόρμα

Η διόρθωση ημερομηνιών εφαρμόζεται στο επίπεδο του γραμματοκιβωτίου Exchange Online, αλλά οι χρήστες προσπελαύνουν το email τους μέσω διαφορετικών clients. Καθένας εμφανίζει τις ημερομηνίες διαφορετικά:

Ψάχνετε ευρύτερο πλαίσιο για ζητήματα ημερομηνιών Microsoft 365 σε διαφορετικά εργαλεία μεταφοράς; Δείτε τον πλήρη οδηγό διόρθωσης ημερομηνιών email μετά από μεταφορά Microsoft 365.

Η εισαγωγή Exchange IMAP άφησε τα γραμματοκιβώτιά σας με λάθος ημερομηνίες; Ξεκινήστε με δωρεάν ανάλυση για να δείτε πόσα email επηρεάζονται και πόσο κοστίζει η διόρθωση, χωρίς πιστωτική κάρτα.

Σχετικά άρθρα