Νέο Outlook: λάθος ημερομηνίες μετά τη μεταφορά

9 min

Δύο Outlook, δύο διαφορετικές συμπεριφορές για τα ίδια email

Αν έχετε μεταφέρει γραμματοκιβώτια στο Microsoft 365 πρόσφατα και κάποιοι χρήστες παραπονούνται ότι όλα τα παλιά τους email εμφανίζουν την ίδια ημερομηνία (αυτή της μεταφοράς), ίσως έχετε παρατηρήσει κάτι παράξενο: οι χρήστες με το κλασικό Outlook βλέπουν μερικές φορές τη σωστή ημερομηνία στο παράθυρο ανάγνωσης, ενώ αυτοί με το νέο Outlook για Windows βλέπουν πάντα την ημερομηνία μεταφοράς. Ίδιο γραμματοκιβώτιο. Ίδια email. Διαφορετικά αποτελέσματα.

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

Το INTERNALDATE του IMAP: ο πραγματικός ένοχος

Όταν ένα email αποθηκεύεται σε έναν διακομιστή IMAP, έχει δύο τύπους ημερομηνιών που συνυπάρχουν και δεν ταυτίζονται.

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

Η δεύτερη είναι το INTERNALDATE, ένα μεταδεδομένο που διαχειρίζεται ο διακομιστής IMAP, εξωτερικό ως προς το μήνυμα. Είναι η ημερομηνία κατά την οποία ο διακομιστής κατέγραψε το μήνυμα. Σε μια κανονική μεταφορά, τα σοβαρά εργαλεία διατηρούν το αρχικό INTERNALDATE. Αλλά σε μια μεταφορά με λανθασμένη ρύθμιση, ή με εργαλεία που δεν χειρίζονται σωστά αυτό το μεταδεδομένο, το INTERNALDATE επαναφέρεται στην ημερομηνία της μεταφοράς. Αποτέλεσμα: όλα τα μεταφερθέντα email φέρουν την ίδια ημερομηνία παραλαβής στα μάτια του διακομιστή.

(Αν έχετε διαβάσει ποτέ τα logs του imapsync ή του MigrationWiz, ξέρετε ότι υπάρχουν συγκεκριμένες επιλογές για να δοκιμάσετε να διατηρήσετε το INTERNALDATE. Αυτές οι επιλογές δεν λειτουργούν πάντα, και ορισμένοι διακομιστές προορισμού αρνούνται να τις υλοποιήσουν.)

Κλασικό Outlook: πώς διαβάζει τις ημερομηνίες

Το κλασικό Outlook, δηλαδή οι εγκατεστημένες τοπικά εκδόσεις COM (Outlook 2016, 2019, 2021 και ο desktop client του Microsoft 365 Apps), χρησιμοποιεί έναν κάπως πιο σύνθετο μηχανισμό για να καθορίσει ποια ημερομηνία θα εμφανίσει στη λίστα μηνυμάτων.

Για τα email στον φάκελο Απεσταλμένα, βασίζεται στην επικεφαλίδα Date:. Για τα email που έχουν ληφθεί, χρησιμοποιεί κατά προτεραιότητα το INTERNALDATE του διακομιστή, αλλά σε ορισμένες περιπτώσεις (ιδίως όταν εμπλέκεται η προσωρινή μνήμη OST ή κατά την πρώτη εμφάνιση στο παράθυρο ανάγνωσης), μπορεί επίσης να διαβάσει την αλυσίδα των επικεφαλίδων Received: για να ανακατασκευάσει μια κατά προσέγγιση αρχική ημερομηνία.

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

Το νέο Outlook: μια ριζικά διαφορετική αρχιτεκτονική

Το νέο Outlook για Windows, που αναπτύσσεται σταδιακά από τα τέλη του 2023, δεν είναι πλέον μια εφαρμογή COM. Είναι ουσιαστικά μια Progressive Web App (PWA) βασισμένη στον ίδιο κώδικα με το Outlook στο web (OWA). Αυτή η ανακατασκευή έχει βαθιές επιπτώσεις.

Το νέο Outlook αναθέτει πλήρως την εμφάνιση των ημερομηνιών στο API του Microsoft 365. Δεν διαβάζει τις επικεφαλίδες Received:, δεν ψάχνει μέσα στην αλυσίδα επικεφαλίδων για να βρει αρχική ημερομηνία, και δεν κάνει καμία απόπειρα ανακατασκευής στην πλευρά του client. Εμφανίζει απλά αυτό που του επιστρέφει ο διακομιστής: το INTERNALDATE.

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

Ένας διαχειριστής που μεταφέρει 300 γραμματοκιβώτια ένα Παρασκευοβράδυ θα ανακαλύψει τη Δευτέρα το πρωί ότι όλοι οι χρήστες στο νέο Outlook βλέπουν τα αρχεία τους χρονολογημένα στο περασμένο Σαββατοκύριακο. Τα αιτήματα υποστήριξης φτάνουν γρήγορα.

Γιατί καμία προσωρινή λύση από την πλευρά του client δεν λειτουργεί

Πολλοί διαχειριστές δοκιμάζουν λύσεις από την πλευρά του client πριν καταλάβουν ότι το πρόβλημα βρίσκεται στα δεδομένα του διακομιστή. Παρακάτω οι κλασικές απόπειρες και γιατί αποτυγχάνουν.

Ταξινόμηση κατά "Ημερομηνία αποστολής" αντί "Ημερομηνία παραλαβής"

Η ταξινόμηση κατά ημερομηνία αποστολής στο Outlook βασίζεται στην επικεφαλίδα Date: του μηνύματος, η οποία είναι άθικτη. Οπότε ναι, αυτή η ταξινόμηση μπορεί να λειτουργήσει. Αλλά είναι ένα επίθεμα, όχι λύση. Οι αναζητήσεις κατά ημερομηνία παραμένουν χαλασμένες. Οι κανόνες που βασίζονται σε ημερομηνία παραμένουν άχρηστοι. Και το κυριότερο, ο χρήστης πρέπει να αλλάξει χειροκίνητα τη ρύθμιση σε κάθε φάκελο, σε κάθε γραμματοκιβώτιο. Για 300 γραμματοκιβώτια, αυτό είναι ανέφικτο. Η ταξινόμηση κατά ημερομηνία αποστολής δεν λύνει το πρόβλημα, και οι τελικοί χρήστες δεν καταλαβαίνουν γιατί τους ζητείται να αλλάξουν τις συνήθειές τους.

Εκκαθάριση προσωρινής μνήμης Outlook ή δημιουργία νέου προφίλ

Αυτό δεν επηρεάζει το INTERNALDATE στη πλευρά του διακομιστή. Μετά τη δημιουργία νέου προφίλ, το Outlook επανασυγχρονίζει τα email από τον διακομιστή και ανακτά ακριβώς τα ίδια κατεστραμμένα μεταδεδομένα. Η προσωρινή μνήμη δεν είναι το πρόβλημα.

Χρήση OWA αντί του desktop client

Το OWA και το νέο Outlook μοιράζονται την ίδια βάση δεδομένων. Αν το INTERNALDATE είναι κατεστραμμένο στον διακομιστή Exchange Online, το OWA εμφανίζει ακριβώς την ίδια λανθασμένη ημερομηνία. Η αλλαγή client δεν αλλάζει τα δεδομένα.

Το πρόβλημα βρίσκεται στον διακομιστή, στα μεταδεδομένα κάθε μηνύματος. Καμία ενέργεια από την πλευρά του client δεν μπορεί να διορθώσει δεδομένα αποθηκευμένα στον διακομιστή.

Η παγίδα των επικεφαλίδων Received: γιατί περιπλέκουν τα πάντα

Όταν ένα εργαλείο μεταφοράς αντιγράφει ένα email από έναν διακομιστή σε άλλο μέσω IMAP, ο διακομιστής προορισμού προσθέτει αυτόματα μια επικεφαλίδα Received: στην κορυφή της αλυσίδας, με την ημερομηνία και ώρα εισαγωγής. Αυτή είναι η κανονική συμπεριφορά των διακομιστών SMTP και IMAP που συμμορφώνονται με τα RFC.

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

Διευκρίνιση: αυτή η συμπεριφορά δεν είναι χαρακτηριστική ενός μόνο εργαλείου. Το BitTitan MigrationWiz, το CloudM, το imapsync, το GSMMO, ακόμα και μια χειροκίνητη αντιγραφή IMAP μεταξύ δύο Thunderbird clients παράγουν όλοι αυτό το αποτέλεσμα. Η αρχική επικεφαλίδα Date: παραμένει άθικτη μέσα στο μήνυμα. Αυτό ακριβώς κάνει τη διόρθωση τεχνικά εφικτή. Αλλά το INTERNALDATE είναι ένα ξεχωριστό μεταδεδομένο που διαχειρίζεται ο διακομιστής και δεν μπορεί να διορθωθεί απλά χειραγωγώντας τις επικεφαλίδες του μηνύματος στην πλευρά του client.

Για περισσότερες λεπτομέρειες σχετικά με αυτόν τον μηχανισμό, το άρθρο για το IMAP INTERNALDATE και γιατί χαλάνε οι ημερομηνίες αναλύει πώς διαχειρίζεται αυτό το μεταδεδομένο ανά διακομιστή.

Ποια εργαλεία μεταφοράς προκαλούν αυτό το πρόβλημα στο Microsoft 365

Το ερώτημα επανέρχεται συχνά: μήπως όλα τα εργαλεία μεταφοράς προκαλούν αυτό το πρόβλημα;

Η σύντομη απάντηση είναι ότι εξαρτάται από τη ρύθμιση και την πλατφόρμα προορισμού. Στο Exchange Online / Microsoft 365, ο διακομιστής είναι ιδιαίτερα αυστηρός στη διαχείριση του INTERNALDATE. Ακόμα και εργαλεία που προσπαθούν να το διατηρήσουν αποτυγχάνουν μερικές φορές, γιατί το Graph API και το EWS (Exchange Web Services) έχουν διαφορετικές συμπεριφορές ανάλογα με τον τρόπο εισαγωγής που χρησιμοποιείται.

Το BitTitan MigrationWiz είναι ένα από τα πιο διαδεδομένα εργαλεία για μεταφορές στο Microsoft 365, και είναι επίσης ένα από αυτά με τα καλύτερα τεκμηριωμένα προβλήματα ημερομηνιών. Η σελίδα διόρθωση ημερομηνιών μετεγκατάστασης BitTitan στο Microsoft 365 καλύπτει τις συγκεκριμένες ρυθμίσεις που πρέπει να παρακολουθείτε. Το CloudM και το imapsync έχουν τις δικές τους ιδιαιτερότητες, που τεκμηριώνονται αντίστοιχα στις σελίδες διόρθωση ημερομηνιών CloudM στο Microsoft 365 και διόρθωση ημερομηνιών imapsync στο Microsoft 365.

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

Γιατί ένα script κατασκευής σας είναι κακή ιδέα εδώ

Η κατανόηση του προβλήματος δίνει μερικές φορές την ψευδαίσθηση ότι η λύση είναι απλή. Δεν είναι, όχι σε περιβάλλον παραγωγής.

Η τροποποίηση μεταδεδομένων email αποθηκευμένων στο Exchange Online δεν είναι τετριμμένη υπόθεση. Το Graph API της Microsoft επιβάλλει αυστηρά όρια ρυθμού αιτημάτων (το σφάλμα 429 Too Many Requests σε ένα batch νύχτας έρχεται γρήγορα). Η διαχείριση email υπογεγραμμένων με S/MIME ή κρυπτογραφημένων με PGP απαιτεί ιδιαίτερη προσοχή για να μην ακυρωθούν οι υπογραφές. Οι δομές multipart με μεγάλα συνημμένα προσθέτουν περιορισμούς στα timeouts δικτύου. Και το κυριότερο: πώς επαληθεύετε, email προς email, ότι η διόρθωση έγινε σωστά χωρίς να αλλοιωθεί το περιεχόμενο ή τα συνημμένα;

Ένα script που λειτουργεί καλά σε 50 email δοκιμής δεν θα συμπεριφερθεί το ίδιο σε ένα γραμματοκιβώτιο 40.000 μηνυμάτων με 8 χρόνια ιστορικό. Η πιθανότητα κάποιας ακραίας περίπτωσης να σπάσει κάτι αυξάνεται με κάθε επιπλέον χιλιάδα μηνύματα. Και χωρίς μηχανισμό επαναφοράς, ένα σφάλμα στη μέση της διαδικασίας αφήνει το γραμματοκιβώτιο σε ασυνεπή κατάσταση.

Δείτε επίσης: διόρθωση ημερομηνιών email μετά από μεταφορά στο Microsoft 365 για μια πλήρη επισκόπηση των διαθέσιμων επιλογών.

Τι κάνει συγκεκριμένα το Redate.io

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

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

Το νέο Outlook εμφανίζει τότε τις σωστές ημερομηνίες, γιατί τα δεδομένα του διακομιστή είναι διορθωμένα, όχι κρυμμένα.

Έχετε γραμματοκιβώτια που επηρεάζονται στο νέο Outlook; Εκτελέστε δωρεάν σάρωση στο Redate.io για να δείτε ακριβώς πόσα email αφορά το πρόβλημα, πριν αποφασίσετε πώς να προχωρήσετε.

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