Το σύμπτωμα: όλα τα email έχουν την ίδια ημερομηνία
Μόλις ολοκληρώσατε ένα import PST στο eM Client, ή μεταφέρατε email από το Thunderbird στο νέο σας γραμματοκιβώτιο. Η διαδικασία έτρεξε χωρίς εμφανή σφάλματα. Αλλά όταν ανοίγετε τα εισερχόμενα, κάτι δεν πάει καλά: εκατοντάδες, μερικές φορές χιλιάδες email εμφανίζουν όλα την ίδια ημερομηνία, αυτή της ημέρας του import. Ένα email του 2019 φαίνεται να ελήφθη χθες. Ένα συμβόλαιο που υπογράφηκε πριν τρία χρόνια εμφανίζεται σαν να μόλις έφτασε.
Η πρώτη φυσική αντίδραση είναι να φταίξει το eM Client. Λάθος ρύθμιση, λάθος στήλη ταξινόμησης, σφάλμα εμφάνισης... Ψάχνετε στις προτιμήσεις. Εναλλάσσετε μεταξύ "Ημερομηνία παραλαβής" και "Ημερομηνία αποστολής". Τίποτα δεν αλλάζει. Ή μάλλον, κάτι αλλάζει, αλλά δεν λύνει το ουσιαστικό πρόβλημα.
Γιατί το πρόβλημα δεν βρίσκεται στο eM Client. Βρίσκεται στα μεταδεδομένα του διακομιστή.
Η πραγματική αιτία: το INTERNALDATE IMAP αντικαταστάθηκε κατά το import
Για να καταλάβουμε τι συμβαίνει, πρέπει να κατεβούμε ένα επίπεδο και να δούμε πώς το πρωτόκολλο IMAP αποθηκεύει τα email.
Κάθε μήνυμα σε έναν διακομιστή IMAP έχει δύο διαφορετικούς τύπους ημερομηνίας:
- Η κεφαλίδα
Date:(ορίζεται από το RFC 2822): είναι η ημερομηνία που έγραψε ο αποστολέας στο μήνυμα κατά την αποστολή. Ενσωματώνεται στο σώμα του μηνύματος και θεωρητικά δεν αγγίζεται. - Το INTERNALDATE: ένα μεταδεδομένο του διακομιστή, εξωτερικό προς το μήνυμα, που αντιπροσωπεύει την ημερομηνία κατάθεσης του μηνύματος στο γραμματοκιβώτιο. Αυτή η τιμή χρησιμοποιείται κατά προτεραιότητα από τους clients email για ταξινόμηση και εμφάνιση.
Κατά τη διάρκεια ενός import PST ή μετεγκατάστασης από Thunderbird, το εργαλείο import (είτε είναι η ενσωματωμένη λειτουργία του eM Client, είτε κάποιο τρίτο εργαλείο, είτε χειροκίνητη αντιγραφή IMAP) καταθέτει τα μηνύματα στον διακομιστή IMAP προορισμού. Και εκεί, αν το εργαλείο δεν διατηρεί ρητά το αρχικό INTERNALDATE κατά την κατάθεση, ο διακομιστής αναθέτει αυτόματα το τρέχον INTERNALDATE, δηλαδή την ημερομηνία και ώρα του import.
Αποτέλεσμα: 8.000 αρχειοθετημένα email από το 2017, όλα σφραγισμένα ως "ληφθέντα" την ημέρα της μετεγκατάστασής σας.
(Αν έχετε δοκιμάσει ποτέ να διαβάσετε τις ακατέργαστες κεφαλίδες ενός email με την επιλογή Εμφάνιση πηγής στο eM Client, ίσως παρατηρήσατε ότι η αρχική κεφαλίδα Date: είναι ακόμα εκεί, ανέπαφη. Αυτό είναι το σημάδι ότι το πρόβλημα προέρχεται από το INTERNALDATE του διακομιστή, όχι από το ίδιο το μήνυμα.)
Γιατί η αλλαγή στήλης ταξινόμησης δεν βοηθά
Η σύγχυση προέρχεται από μια διάκριση που λίγοι γνωρίζουν. Στο eM Client, όπως και στο Outlook ή στο Thunderbird, υπάρχουν συνήθως δύο στήλες ημερομηνίας:
- "Ημερομηνία παραλαβής" (ή "Ημερομηνία άφιξης"): βασίζεται στο INTERNALDATE του διακομιστή.
- "Ημερομηνία" ή "Ημερομηνία αποστολής": βασίζεται στην κεφαλίδα
Date:του μηνύματος.
Πολλοί διαχειριστές το ανακαλύπτουν αυτό και νομίζουν ότι βρήκαν τη λύση: αλλάζουν σε "Ημερομηνία αποστολής" και το πρόβλημα εξαφανίζεται οπτικά στο eM Client. Αλλά δεν είναι ακριβώς έτσι.
Διόρθωση: ακόμα και αν ταξινομείτε κατά ημερομηνία αποστολής στο eM Client, το πρόβλημα παραμένει για όλους τους άλλους clients και όλες τις άλλες διεπαφές που έχουν πρόσβαση στο ίδιο γραμματοκιβώτιο. Αν οι χρήστες σας ελέγχουν email από το OWA, από το Outlook στο γραφείο, από την εφαρμογή Gmail στο κινητό, ή από οποιονδήποτε client ρυθμισμένο σε IMAP, θα βλέπουν τις ημερομηνίες import. Η ρύθμιση ταξινόμησης του eM Client ισχύει μόνο για το eM Client, και δεν επηρεάζει τα μεταδεδομένα που είναι αποθηκευμένα στον διακομιστή.
Επιπλέον, στο Microsoft 365 και το Google Workspace, η εγγενής web προβολή ταξινομεί κατά INTERNALDATE. Δεν μπορείτε να αλλάξετε αυτή τη συμπεριφορά από τον client.
Η ταξινόμηση κατά ημερομηνία αποστολής δεν είναι λύση. Είναι επίδεσμος που καλύπτει ένα πραγματικό πρόβλημα χωρίς να το διορθώνει.
Η ιδιαίτερη περίπτωση του import PST
Το import αρχείων PST αξίζει ξεχωριστή αναφορά. Ένα αρχείο PST (Personal Storage Table) είναι ένα ιδιόκτητο format της Microsoft που αποθηκεύει email, επαφές και ημερολόγια τοπικά. Όταν κάνετε import ενός PST στο eM Client, υπάρχουν δύο σενάρια:
- Import τοπικού αρχείου σε λογαριασμό IMAP: το eM Client διαβάζει το PST και ωθεί τα μηνύματα στον διακομιστή IMAP προορισμού. Αν η ημερομηνία κατάθεσης δεν διατηρηθεί, το INTERNALDATE αντικαθίσταται. Αυτή είναι η πιο συχνή περίπτωση, και εδώ καταλήγουν κατεστραμμένες οι ημερομηνίες.
- Import σε τοπικό φάκελο: τα μηνύματα παραμένουν στο μηχάνημα, εκτός διακομιστή. Το INTERNALDATE δεν υπάρχει σε αυτό το πλαίσιο, και το eM Client μπορεί να εμφανίσει την ημερομηνία
Date:του μηνύματος. Λιγότερο πρόβλημα ημερομηνίας εδώ, αλλά και λιγότερη πρακτική χρησιμότητα.
Για το Thunderbird, η κατάσταση είναι παρόμοια. Αν χρησιμοποιείτε την ενσωματωμένη λειτουργία import του eM Client (που διαβάζει τα προφίλ Thunderbird), ή αν έχετε αντιγράψει φακέλους mbox μέσω IMAP, τα μηνύματα καταθέτονται ξανά στον διακομιστή χωρίς εγγύηση διατήρησης του INTERNALDATE. Και ένας διακομιστής που λαμβάνει ένα μήνυμα χωρίς ρητή οδηγία ημερομηνίας για το INTERNALDATE θα χρονοσημαίνει συστηματικά με την ώρα παραλαβής.
Ποια πλατφόρμα επηρεάζεται;
Το πρόβλημα είναι ίδιο ανεξάρτητα από την πλατφόρμα προορισμού, επειδή πρόκειται για τυπική συμπεριφορά του πρωτοκόλλου IMAP:
- Microsoft 365 / Exchange Online: το INTERNALDATE αντικαθίσταται κατά οποιοδήποτε import που δεν χρησιμοποιεί την εντολή IMAP APPEND με ρητή παράμετρο ημερομηνίας. Το ίδιο ισχύει για μετεγκατάσταση από Exchange on-premise.
- Google Workspace: ίδια συμπεριφορά. Τα email που εισάγονται μέσω eM Client ή τρίτων εργαλείων εμφανίζουν την ημερομηνία import στο Gmail και στη διεπαφή διαχείρισης.
- Κλασικοί IMAP hosts (OVH, Infomaniak, Ionos, κ.ά.): καμία ειδική επεξεργασία ημερομηνίας κατά την παραλαβή μηνύματος σε APPEND. Το INTERNALDATE θα είναι η ημερομηνία κατάθεσης.
Ένας πελάτης επικοινώνησε μαζί μας αφού μετεγκατέστησε έναν καλό αριθμό γραμματοκιβωτίων από Exchange 2013 σε Microsoft 365, χρησιμοποιώντας το eM Client ως εργαλείο μετάβασης για ορισμένους VIP λογαριασμούς. Αποτέλεσμα: τα γραμματοκιβώτια που μεταφέρθηκαν κανονικά μέσω MigrationWiz ήταν σωστά, αλλά αυτά που πέρασαν από το eM Client είχαν όλα τις ημερομηνίες import. Περιττό να πούμε ότι οι χρήστες που επηρεάστηκαν δεν ήταν ευχαριστημένοι.
Γιατί ένα homemade script δεν θα λύσει εύκολα αυτό
Τεχνικά, κάποιος που κατανοεί το πρωτόκολλο IMAP μπορεί να σκεφτεί να γράψει ένα script για να διορθώσει τα INTERNALDATE. Η αρχική κεφαλίδα Date: είναι εκεί, ανέπαφη σε κάθε μήνυμα. Αρκεί να τη διαβάσεις και να ανακατασκευάσεις τα μεταδεδομένα του διακομιστή ανάλογα, έτσι δεν είναι;
Θεωρητικά, ναι. Στην πράξη, είναι ναρκοπέδιο.
Πρώτον, οι οριακές περιπτώσεις συσσωρεύονται γρήγορα σε ένα γραμματοκιβώτιο παραγωγής. Τα μηνύματα υπογεγραμμένα ψηφιακά με S/MIME είναι ιδιαίτερα ευαίσθητα σε οποιαδήποτε επεξεργασία δομής. Το ίδιο ισχύει για μηνύματα κρυπτογραφημένα με PGP. Τα email με μεγάλα συνημμένα, μη τυπικά όρια MIME, ή ασυνήθιστες κωδικοποιήσεις Content-Transfer-Encoding μπορούν να καταστραφούν αθόρυβα αν η επεξεργασία δεν είναι αυστηρή. Ένα script που λειτουργεί σε 50 email δοκιμών δεν θα λειτουργεί αξιόπιστα σε ένα γραμματοκιβώτιο 20.000 μηνυμάτων με ιστορικό 6 ετών.
Έπειτα, η διαχείριση quota API. Στο Microsoft 365, τα rate limits στο Graph API ή στο EWS στις 3 π.μ. κατά τη διάρκεια ενός batch διόρθωσης 8.000 μηνυμάτων απαιτούν προσοχή. Ένα script χωρίς επίβλεψη που αντιμετωπίζει σφάλμα 429 Too Many Requests στο μήνυμα #3.741 μπορεί να συνεχίσει ή όχι. Και δεν θα ξέρετε απαραίτητα ποια μηνύματα έχουν επεξεργαστεί.
Και κυρίως: πώς επαληθεύετε ότι κάθε email που διορθώθηκε είναι άθικτο μετά την επεξεργασία; Ένα homemade script δεν έχει συνήθως μηχανισμό επαλήθευσης ανά μήνυμα. Το Redate.io το κάνει αυτόματα, για κάθε μήνυμα.
Διόρθωση ημερομηνιών στη ρίζα με το Redate.io
Το Redate.io αντιμετωπίζει το πρόβλημα εκεί που βρίσκεται: στο επίπεδο των μεταδεδομένων του διακομιστή, όχι στο επίπεδο του client email.
Η διαδικασία ξεκινά με μια δωρεάν φάση σάρωσης. Το Redate.io συνδέεται στο γραμματοκιβώτιο (Microsoft 365 μέσω Azure AD, Google Workspace μέσω domain delegation, ή απευθείας IMAP για κλασικούς hosts) και εντοπίζει τα email των οποίων τα μεταδεδομένα ημερομηνίας είναι ασυνεπή με το περιεχόμενο του μηνύματος. Βλέπετε το αποτέλεσμα πριν πληρώσετε οτιδήποτε.
Η διόρθωση χρησιμοποιεί έναν ιδιόκτητο μηχανισμό που αναλύει την πλήρη αλυσίδα κεφαλίδων κάθε μηνύματος, εφαρμόζει αντιστοίχιση προτύπων σε εκατοντάδες υπογραφές γνωστών εργαλείων import (συμπεριλαμβανομένων των ειδικών συμπεριφορών του eM Client, του Thunderbird, των import PST), και ανακατασκευάζει τα μεταδεδομένα ημερομηνίας με στοχευμένο τρόπο χωρίς να τροποποιεί το περιεχόμενο του μηνύματος, τα συνημμένα του, ούτε τη δομή MIME του.
Κάθε διορθωμένο email επαληθεύεται μεμονωμένα. Τα πρωτότυπα φυλάσσονται σε ορατό φάκελο backup για 30 ημέρες, κάτι που ένα homemade script δεν θα κάνει ποτέ από προεπιλογή.
Η τιμολόγηση είναι απλή: εφάπαξ πληρωμή ανά γραμματοκιβώτιο, βάσει του όγκου των email προς διόρθωση. Χωρίς συνδρομή, χωρίς επαναλαμβανόμενες χρεώσεις. Επισκεφθείτε τη σελίδα εκκίνησης για τις λεπτομέρειες.
Για την επόμενη μετεγκατάσταση: τι πρέπει να ελέγξετε
Αν σχεδιάζετε μια μετεγκατάσταση και θέλετε να αποφύγετε αυτό το πρόβλημα εκ των προτέρων, το σημείο ελέγχου είναι απλό: το εργαλείο που χρησιμοποιείτε διατηρεί ρητά το INTERNALDATE κατά την κατάθεση των μηνυμάτων στον διακομιστή προορισμού;
Για import PST σε Microsoft 365, τα εργαλεία πιστοποιημένα από τη Microsoft (όπως το MigrationWiz στις εγγενείς λειτουργίες του, ή το εργαλείο μετεγκατάστασης Exchange Online) διαχειρίζονται συνήθως αυτή τη διατήρηση. Για χειροκίνητα import μέσω eM Client ή Thunderbird, σπάνια συμβαίνει αυτό. Ελέγξτε την τεκμηρίωση του εργαλείου σας πριν ξεκινήσετε import σε γραμματοκιβώτια παραγωγής.
Μια καλή checklist μετεγκατάστασης email περιλαμβάνει πάντα έλεγχο ημερομηνιών μετά τη μετεγκατάσταση σε ένα δείγμα γραμματοκιβωτίων. Αν θέλετε να εμβαθύνετε, καλύπτει αυτό το σημείο αναλυτικά.
Για τους διαχειριστές που διαχειρίζονται τακτικά μετεγκαταστάσεις για τους πελάτες τους, το άρθρο για τη διόρθωση ημερομηνιών email από MSP και αυτό για τη λειτουργία του INTERNALDATE IMAP δίνουν μια πληρέστερη εικόνα του προβλήματος.
Οι ημερομηνίες των email σας έχουν καταστραφεί μετά από import στο eM Client; Εκκινήστε μια δωρεάν σάρωση στο Redate.io για να μετρήσετε την έκταση του προβλήματος πριν αποφασίσετε τι να κάνετε.