Λάθος ημερομηνίες email μετά μεταφορά Zoho σε Microsoft 365

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

Τι συνέβη στο γραμματοκιβώτιό σας

Μόλις ολοκληρώσατε τη μεταφορά του domain σας από το Zoho Mail στο Microsoft 365. Η υποδομή Exchange Online είναι έτοιμη, τα γραμματοκιβώτια έχουν ενεργοποιηθεί, τα MX records έχουν ενημερωθεί. Και μετά, Δευτέρα πρωί, ένας χρήστης ανοίγει το Outlook και βλέπει ότι όλα τα e-mail του από το 2021 εμφανίζουν τη σημερινή ημερομηνία. Ένας άλλος παρατηρεί ότι τα μηνύματα του προηγούμενου χρόνου είναι ταξινομημένα στην κορυφή των Εισερχομένων, σαν να έφτασαν μόλις τώρα. Τα tickets αρχίζουν να συσσωρεύονται.

Δεν είναι bug του Outlook. Δεν είναι ούτε πρόβλημα αποκλειστικά του Zoho. Είναι αυτό που συμβαίνει όταν το εργαλείο μεταφοράς δεν περνάει την αρχική ημερομηνία κάθε e-mail. Το να κατανοήσετε ακριβώς γιατί συμβαίνει αυτό είναι το πρώτο βήμα για να το διορθώσετε σωστά.

Η τεχνική αιτία: INTERNALDATE και Received headers

Ένα e-mail που είναι αποθηκευμένο σε έναν IMAP server αποτελείται από δύο διαφορετικά πράγματα: το ακατέργαστο περιεχόμενο του μηνύματος (τα headers RFC 2822, το σώμα, τα συνημμένα) και τα μεταδεδομένα αποθήκευσης που διαχειρίζεται ο IMAP server, μεταξύ των οποίων το INTERNALDATE. Αυτό το μεταδεδομένο χρησιμοποιούν τα προγράμματα e-mail για να εμφανίζουν και να ταξινομούν τα μηνύματα.

Το header Date: που ορίζεται στο ακατέργαστο μήνυμα (RFC 2822) αντιπροσωπεύει την ημερομηνία κατά την οποία το μήνυμα συντάχθηκε ή εστάλη από τον αποστολέα. Το INTERNALDATE, από την άλλη, είναι η ημερομηνία κατά την οποία ο IMAP server παρέλαβε ή αποθήκευσε το μήνυμα. Κανονικά, σε έναν server που λειτουργεί σωστά, οι δύο αυτές τιμές είναι κοντά. Μετά από μια μεταφορά, η ιστορία αλλάζει τελείως.

Πώς μια μεταφορά IMAP μπορεί να καταστρέψει τις ημερομηνίες

Όταν ένα εργαλείο μεταφοράς (το Zoho Migration Wizard, το imapsync, το BitTitan ή οποιοδήποτε άλλο) μεταφέρει ένα μήνυμα από το Zoho Mail στο Exchange Online, το κάνει μέσω του πρωτοκόλλου IMAP. Το εργαλείο συνδέεται στο Zoho, ανακτά το μήνυμα και στη συνέχεια το εισάγει στο Exchange Online μέσω μιας εντολής IMAP APPEND. Και εκεί είναι που τα πράγματα πάνε στραβά.

Το Exchange Online διατηρεί την ημερομηνία που του δίνεται: όταν το εργαλείο περάσει το αρχικό INTERNALDATE κάθε μηνύματος με την εντολή APPEND, το αντίγραφο το διατηρεί. Ορισμένα εργαλεία μεταφοράς το κάνουν. Άλλα δεν το κάνουν, ή το κάνουν λανθασμένα, οπότε το Exchange Online αναθέτει τη στιγμή της εισαγωγής, δηλαδή την ημερομηνία της μεταφοράς, ως INTERNALDATE.

Αποτέλεσμα: είτε πρόκειται για e-mail που στάλθηκε το 2019 είτε το 2022, το INTERNALDATE του δείχνει πλέον στην εβδομάδα της μεταφοράς. Το Outlook διαβάζει αυτή την τιμή κατά προτεραιότητα. Η ταξινόμηση καταρρέει.

Η συγκεκριμένη συμπεριφορά του Zoho Migration Wizard

Το Zoho προσφέρει το δικό του εργαλείο μεταφοράς για να φύγετε από την πλατφόρμα του: το Zoho Migration Wizard. Το εργαλείο αυτό είναι βολικό για απλές μεταφορές, αλλά έχει μια τεκμηριωμένη συμπεριφορά στα φόρουμ διαχειριστών: δεν μεταδίδει πάντα σωστά το αρχικό INTERNALDATE κατά την εισαγωγή στον server προορισμού.

Για να είμαστε ακριβείς: όταν το Zoho Migration Wizard περάσει την αρχική ημερομηνία, το Exchange Online τη διατηρεί και το Outlook εμφανίζει τη σωστή ημερομηνία. Τα e-mail που εμφανίζουν την ημερομηνία της μεταφοράς είναι αυτά για τα οποία η ημερομηνία δεν μεταφέρθηκε.

Οι διαχειριστές που χρησιμοποιούν γενικά εργαλεία IMAP όπως το imapsync για να αποχωρήσουν από το Zoho μπορούν να αντιμετωπίσουν το ίδιο πρόβλημα: το imapsync αντιγράφει την ημερομηνία που κρατά ο διακομιστής προέλευσης για κάθε μήνυμα, οπότε μια λάθος ημερομηνία στην πηγή γίνεται λάθος ημερομηνία και στον προορισμό. (Κι αν έχετε ποτέ διαβάσει ένα log του imapsync γραμμή προς γραμμή ψάχνοντας ένα σφάλμα συγχρονισμού στις 2 τα ξημερώματα, ξέρετε ότι είναι ένα ισχυρό εργαλείο, αλλά όχι ιδιαίτερα συγχωρητικό για οριακές περιπτώσεις.)

Γιατί το Outlook εμφανίζει λάθος ημερομηνία

Το Outlook δεν χρησιμοποιεί αποκλειστικά το header Date: για να εμφανίσει την ημερομηνία ενός e-mail. Στην πλειονότητα των προβολών, χρησιμοποιεί το INTERNALDATE που παρέχει ο server IMAP/Exchange, ιδίως για την ταξινόμηση των Εισερχομένων. Το αρχικό header Date: είναι παρόν στο μήνυμα, ανέπαφο, αλλά αγνοείται υπέρ του INTERNALDATE.

Γι' αυτό η επιλογή "Ταξινόμηση κατά ημερομηνία αποστολής" στο Outlook δεν λύνει πραγματικά το πρόβλημα. Εμφανίζει μια διαφορετική ημερομηνία, ναι, αλλά η συμπεριφορά ταξινόμησης παραμένει ασταθής ανάλογα με την έκδοση του Outlook και τις ρυθμίσεις προβολής (ομαδοποιημένες συνομιλίες ή όχι). Η ταξινόμηση κατά ημερομηνία αποστολής δεν είναι λύση. Είναι ένα επίθεμα που πέφτει με την πρώτη ενημέρωση του client.

Η πραγματική έκταση του προβλήματος

Σε μια μεταφορά μεσαίου μεγέθους από Zoho σε Microsoft 365, μιλάμε εύκολα για 50.000 έως 500.000 μηνύματα που έχουν επηρεαστεί, ανάλογα με την ηλικία των γραμματοκιβωτίων και το μέγεθος του οργανισμού. Κάθε e-mail που μεταφέρθηκε κατά τη διάρκεια της μεταφοράς φέρει την ίδια αλλοιωμένη ημερομηνία, γεγονός που καθιστά το πρόβλημα άμεσα ορατό στους χρήστες από την πρώτη κιόλας φορά που ανοίγουν το Outlook.

Οι φάκελοι Απεσταλμένων είναι συχνά οι πιο προβληματικοί. Ένας πωλητής που ψάχνει μια προσφορά που έστειλε τον Μάρτιο του 2022 βρίσκεται να ψάχνει μέσα σε εκατοντάδες e-mail που εμφανίζουν όλα την ημερομηνία της μεταφοράς. Ο επιχειρησιακός αντίκτυπος είναι πραγματικός, όχι απλώς αισθητικός.

Και σε αντίθεση με ό,τι θα μπορούσε κανείς να πιστεύει, το πρόβλημα δεν εξαφανίζεται με τον χρόνο. Το INTERNALDATE ορίζεται τη στιγμή της εισαγωγής. Δεν διορθώνεται μόνο του. Χωρίς ενεργή παρέμβαση, τα e-mail θα διατηρήσουν την αλλοιωμένη ημερομηνία τους επ' αόριστον.

Γιατί η αυτόνομη διόρθωση είναι πιο επικίνδυνη απ' ό,τι φαίνεται

Ο πειρασμός είναι κατανοητός: αφού το αρχικό header Date: βρίσκεται πάντα στο μήνυμα, αρκεί να... διορθωθούν τα μεταδεδομένα. Στη θεωρία, έχει λογική. Στην πράξη, σε ένα γραμματοκιβώτιο παραγωγής με 80.000 e-mail, είναι μια επέμβαση που μπορεί να πάει καταστροφικά στραβά.

Ορισμένες οριακές περιπτώσεις που ένα script χαμηλού επιπέδου πιθανώς δεν θα χειριστεί σωστά:

  • E-mail υπογεγραμμένα με S/MIME, όπου η υπογραφή καλύπτει το σύνολο των headers. Οποιαδήποτε αλλαγή στη δομή του μηνύματος ακυρώνει την κρυπτογραφική υπογραφή.
  • Μηνύματα κρυπτογραφημένα με PGP, όπου το περιεχόμενο είναι αδιαφανές και κάθε χειρισμός των MIME envelopes μπορεί να καταστρέψει το μήνυμα.
  • Non-ASCII headers κωδικοποιημένα κατά RFC 2047 (ονόματα αποστολέων με ειδικούς χαρακτήρες), που σπάνε αν το script δεν χειρίζεται σωστά την κωδικοποίηση.
  • Συνημμένα κωδικοποιημένα σε base64 με μη κανονικά τερματισμένες γραμμές, μη τυπικά MIME boundaries, ή εμφωλευμένες multipart δομές.
  • E-mail χωρίς έγκυρο header Date: (υπάρχουν, ιδίως σε παλαιά exports του Zoho), όπου το script πρέπει να αποφασίσει τι να κάνει.

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

Υπάρχει επίσης το ζήτημα των quotas. Το API του Exchange Online μέσω του Microsoft Graph επιβάλλει αυστηρά rate limits (τα γνωστά σφάλματα 429 Too Many Requests). Ένα batch χωρίς throttling σε 100.000 μηνύματα μπορεί να προκαλέσει προσωρινές αποκλείσεις ή αθόρυβα σφάλματα δύσκολα να διαγνωστούν εκ των υστέρων. Χωρίς μηχανισμό επανεκκίνησης σε περίπτωση σφάλματος, ξεκινάτε από την αρχή.

Πώς το Redate.io διορθώνει τις ημερομηνίες μετά τη μεταφορά από Zoho

Κάθε χρήστης συνδέεται με τον δικό του λογαριασμό Microsoft, και το Redate.io ανοίγει μόνο αυτό το γραμματοκιβώτιο, με την πρόσβαση που παραχωρεί αυτή η σύνδεση. Δεν χρειάζεται πρόσβαση διαχειριστή ούτε καταχώρηση εφαρμογής. Η αρχική ανάλυση είναι δωρεάν: το Redate.io εντοπίζει τα επηρεασμένα γραμματοκιβώτια και εκτιμά τον αριθμό των e-mail με λανθασμένες ημερομηνίες, συγκρίνοντας το INTERNALDATE με τις τιμές που φέρει η αλυσίδα headers του μηνύματος.

Η διόρθωση χρησιμοποιεί έναν ιδιόκτητο κινητήρα που αναλύει την πλήρη αλυσίδα headers κάθε μηνύματος, δεν χρειάζεται να γνωρίζει ποιο εργαλείο έκανε τη μεταφορά (Zoho Migration Wizard, imapsync ή οποιοδήποτε άλλο), και ανακατασκευάζει τα μεταδεδομένα ημερομηνίας μέσω ενός pipeline επικύρωσης πολλαπλών σταδίων. Κάθε διορθωμένο e-mail επαληθεύεται μεμονωμένα: ακεραιότητα περιεχομένου, διατήρηση συνημμένων, συμμόρφωση με RFC. Τα αρχικά μηνύματα διατηρούνται σε ορατό φάκελο αντιγράφου ασφαλείας μέσα στο ίδιο σας γραμματοκιβώτιο, μέχρι να τα διαγράψετε εσείς.

Χωρίς νέα μεταφορά. Χωρίς downtime. Οι χρήστες συνεχίζουν να χρησιμοποιούν το Outlook ενώ η διόρθωση εκτελείται στο παρασκήνιο.

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

Αν διαχειρίζεστε πολλαπλές μεταφορές παράλληλα, ή αν είστε MSP και διαχειρίζεστε πελάτες που αποχωρούν από το Zoho, αξίζει να σημειωθεί ότι το ίδιο πρόβλημα εμφανίζεται κατά τις μεταφορές από άλλες πλατφόρμες προς Exchange Online. Ο μηχανισμός είναι πανομοιότυπος: το αντίγραφο παίρνει την ημερομηνία που περνάει το εργαλείο, όποια κι αν είναι η πηγή.

Για μεταφορές από Google Workspace, από Exchange on-premises, ή μέσω εργαλείων όπως το BitTitan MigrationWiz ή το CloudM, τα αντίστοιχα άρθρα στο blog του Redate.io αναλύουν τις συμπεριφορές που είναι ειδικές για κάθε εργαλείο. Το άρθρο Λάθος ημερομηνίες email μετά μεταφορά σε Exchange Online δίνει μια συνολική εικόνα όλων των σεναρίων που καταλήγουν σε αυτό το tenant.

Αν η μεταφορά σας περιλαμβάνει κοινόχρηστα γραμματοκιβώτια ή Exchange resources (αίθουσες, εξοπλισμό), το πρόβλημα είναι το ίδιο, και τα ίδια εργαλεία διόρθωσης εφαρμόζονται. Οι οδηγοί διόρθωσης IMAP προς Exchange στο site του Redate.io αναλύουν τα βήματα σύνδεσης στο tenant σας.

Για τις ομάδες που χρησιμοποιούν ειδικά το imapsync για να αποχωρήσουν από το Zoho, το άρθρο imapsync: ημερομηνίες δεν διατηρήθηκαν τεκμηριώνει τις επιλογές διαμόρφωσης του imapsync και από πού προέρχονται πραγματικά οι λάθος ημερομηνίες.

Οι ημερομηνίες από τη μεταφορά Zoho εξακολουθούν να εμφανίζονται λάθος στο Outlook; Σαρώστε τα γραμματοκιβώτιά σας δωρεάν στο Redate.io για να μετρήσετε την ακριβή έκταση του προβλήματος πριν αποφασίσετε πώς να δράσετε.

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