Takeout mbox: όλα τα email με σημερινή ημερομηνία

9 λεπ. ανάγνωσης

Ανοίξατε το αρχείο Google Takeout, κάνατε import το αρχείο mbox στο Thunderbird με το ImportExportTools NG (ή στο Apple Mail) και μετά σύρατε τους φακέλους στον νέο σας λογαριασμό IMAP. Μέσα στο πρόγραμμα, τα email ήταν τακτοποιημένα χρονιά με τη χρονιά. Στον λογαριασμό προορισμού, όλα φέρουν τη σημερινή ημερομηνία. Αυτό το άρθρο εξηγεί τι συμβαίνει με ένα Takeout mbox που έχει γίνει import, γιατί η ημερομηνία που βλέπετε είναι αυτή της αντιγραφής, πώς να το επιβεβαιώσετε σε λίγα λεπτά και πώς να το διορθώσετε από την πλευρά του διακομιστή.

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

Το τυπικό σενάριο ενός Takeout mbox που έγινε import

Μόλις κλείσατε έναν προσωπικό λογαριασμό Gmail, που είχατε ανοίξει πριν από δεκαπέντε χρόνια. Ζητήσατε την εξαγωγή από το takeout.google.com, περιμένατε το μήνυμα της Google (δύο μέρες για ένα μεγάλο γραμματοκιβώτιο) και κατεβάσατε τέσσερα αρχεία zip. Σε καθένα υπάρχει ένα αρχείο .mbox ανά ετικέτα. Τα εισάγετε στο Thunderbird: ο τοπικός φάκελος γεμίζει, η ταξινόμηση κατά ημερομηνία είναι άψογη, το 2009 στο τέλος της λίστας και το χθεσινό στην κορυφή.

Τότε κάνετε ό,τι θα έκανε ο καθένας. Επιλέγετε τους φακέλους και τους σέρνετε στον λογαριασμό IMAP προορισμού, ένα Microsoft 365, έναν πάροχο φιλοξενίας ή ένα Google Workspace. Η μεταφορά κρατά ολόκληρο το βράδυ. Τη Δευτέρα το πρωί ανοίγετε το webmail.

Το πρόβλημα; Τα 18.400 email έχουν ημερομηνία του Σαββατοκύριακου, μέσα σε ένα εύρος λίγων ωρών. Ένα συμβόλαιο του 2014 βρίσκεται δίπλα σε ένα newsletter της περασμένης εβδομάδας και κανείς δεν μπορεί πια να βρει τίποτα με χρονολογική σειρά.

Η περίπτωση μοιάζει πολύ με αυτή των παλιών email που έχουν όλα την ίδια ημερομηνία, με μία σημαντική διαφορά: εδώ δεν ευθύνεται κανένα εργαλείο μεταφοράς. Φτάνει η μεταφορά με drag and drop.

Τρεις ημερομηνίες σε ένα email

Για να το καταλάβετε, πρέπει να σταματήσετε να μιλάτε για "την ημερομηνία" ενός email. Ένα μήνυμα που έχει γίνει import από αρχείο mbox φέρει τουλάχιστον τρεις, και δεν εξυπηρετούν την ίδια δουλειά.

Η κεφαλίδα Date: η ημερομηνία του αποστολέα

Είναι η κεφαλίδα Date: που ορίζεται από το RFC 2822 (και επαναλαμβάνεται στο RFC 5322). Το πρόγραμμα του αποστολέα τη γράφει τη στιγμή της αποστολής, για παράδειγμα Date: Tue, 14 Mar 2017 09:12:45 +0100. Ανήκει στο μήνυμα, ταξιδεύει μαζί του και το Takeout τη διατηρεί όπως είναι. Αυτή κάνει εφικτή τη διόρθωση, αφού μένει άθικτη.

Η γραμμή From του αρχείου mbox: μια ημερομηνία βιτρίνα

Σε ένα αρχείο mbox, κάθε μήνυμα προηγείται από μια γραμμή που ξεκινά με From (με ένα κενό, χωρίς άνω-κάτω τελεία). Δεν είναι κεφαλίδα: είναι διαχωριστικό που ανήκει στη μορφή του αρχείου και δεν αποτελεί μέρος του μηνύματος. Κανένα σοβαρό εργαλείο δεν πρέπει να βασίζεται σε αυτήν για να χρονολογήσει ένα email.

Η INTERNALDATE: η ημερομηνία κατάθεσης στον διακομιστή

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

Μια διευκρίνιση για τις κεφαλίδες Received:, που συχνά κατηγορούνται άδικα εδώ. Οι γραμμές Received ενός εξαγμένου email του Gmail αφηγούνται την πραγματική διαδρομή του μηνύματος το 2017: φέρουν παλιές και νόμιμες ημερομηνίες. Στη συγκεκριμένη περίπτωση, η λάθος ημερομηνία δεν ζει λοιπόν μέσα στο μήνυμα, αλλά στα μεταδεδομένα που ο διακομιστής αποδίδει στο αντίγραφο.

Γιατί ο λογαριασμός προορισμού δείχνει την ημερομηνία της αντιγραφής

Όταν ένα πρόγραμμα καταθέτει ένα μήνυμα σε διακομιστή IMAP, χρησιμοποιεί την εντολή APPEND. Η εντολή αυτή δέχεται, προαιρετικά, μια ημερομηνία που θα δοθεί στο μήνυμα. Αν το πρόγραμμα την παρέχει, ο διακομιστής τη διατηρεί ως INTERNALDATE. Αλλιώς, ο διακομιστής εφαρμόζει τον κανόνα του RFC 3501: την ημερομηνία και ώρα της στιγμής. Με άλλα λόγια, η ημερομηνία που εμφανίζεται εξαρτάται από τον τρόπο που το εργαλείο έγραψε το email. Ένα εργαλείο που δεν περνά την αρχική ημερομηνία παίρνει την ημερομηνία της αντιγραφής.

Το αποτέλεσμα: όσο σέρνετε τους φακέλους, κάθε μήνυμα παίρνει την ημερομηνία της δικής του κατάθεσης. Ένας φάκελος με 3.000 email που αντιγράφεται σε 40 λεπτά καταλήγει σε ένα παράθυρο 40 λεπτών.

Και ο τοπικός φάκελος του Thunderbird, τότε; Έμοιαζε τέλειος επειδή το Thunderbird ταξινομεί εκεί με βάση την κεφαλίδα Date και όχι μια ημερομηνία διακομιστή, αφού ένας τοπικός φάκελος δεν έχει διακομιστή. Η συμπεριφορά του Apple Mail με τα εισαγμένα γραμματοκιβώτια είναι παρόμοια: όλα πάνε καλά όσο τα μηνύματα μένουν στο Mac. Η αλήθεια φαίνεται τη στιγμή που ένα άλλο πρόγραμμα, το Outlook για παράδειγμα, διαβάζει το γραμματοκιβώτιο IMAP.

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

Το drag and drop δεν είναι μεταφορά. Είναι αντιγραφή, και ένα αντίγραφο φέρει την ημερομηνία της δημιουργίας του.

Πώς να αναγνωρίσετε αυτή την περίπτωση σε πέντε λεπτά

Πριν ψάξετε λύση, επιβεβαιώστε ότι βρίσκεστε σε αυτό το σενάριο και όχι σε άλλο. Αρκούν τέσσερις έλεγχοι.

  • Συγκρίνετε τα δύο σημεία. Ο τοπικός φάκελος του Thunderbird (ή το εισαγμένο γραμματοκιβώτιο του Apple Mail) δείχνει σωστές ημερομηνίες, ο λογαριασμός IMAP πρόσφατες ημερομηνίες για τα ίδια μηνύματα.
  • Δείτε το εύρος. Σε έναν φάκελο του λογαριασμού IMAP, οι ημερομηνίες λήψης χωράνε σε λίγες ώρες, ακόμη και λεπτά, γύρω από τη στιγμή που μετακινήσατε τους φακέλους.
  • Ανοίξτε την πηγή ενός μηνύματος. Στο Thunderbird, Προβολή και μετά Πηγή μηνύματος. Στο Outlook, οι ιδιότητες του μηνύματος δείχνουν τις κεφαλίδες. Πρέπει να βρείτε εκεί μια παλιά γραμμή Date:, ενώ η προβολή δείχνει πρόσφατη ημερομηνία.
  • Ελέγξτε τη σειρά. Τα μηνύματα εμφανίζονται με τη σειρά που τα αντέγραψε το πρόγραμμα, όχι με χρονολογική σειρά.

Να τι δίνει η σύγκριση σε ένα πραγματικό μήνυμα:

Date: Tue, 14 Mar 2017 09:12:45 +0100          (μέσα στο μήνυμα, άθικτη)
Ημερομηνία που δείχνει ο λογαριασμός IMAP : ημέρα της αντιγραφής   (μεταδεδομένο του διακομιστή)

Αν αυτές οι δύο γραμμές δεν λένε την ίδια ιστορία, βρίσκεστε εκεί. Και αν οι ημερομηνίες που εμφανίζονται είναι λάθος αλλά και η Date: είναι λάθος, πρόκειται για άλλο, σπανιότερο πρόβλημα, που δεν αφορά αυτό το άρθρο.

(Παρεμπιπτόντως, αν δεν έχετε ξαναδιαβάσει ακατέργαστες κεφαλίδες email, ετοιμάστε έναν καφέ: δεν είναι ακριβώς ανάγνωση για την παραλία.)

Ταξινόμηση κατά ημερομηνία αποστολής: ένα προσωρινό μπάλωμα

Το αντανακλαστικό είναι να αλλάξετε την ταξινόμηση σε ημερομηνία αποστολής. Στο Outlook δουλεύει περίπου, με την προϋπόθεση να το επαναλάβετε σε κάθε φάκελο και σε κάθε συσκευή. Όμως η αναζήτηση, οι ειδοποιήσεις, οι κανόνες που βασίζονται στην παλαιότητα και οι προβολές στο κινητό συνεχίζουν να χρησιμοποιούν την ημερομηνία λήψης. Ένας χρήστης που ψάχνει "το email του περασμένου Σεπτεμβρίου" στο κινητό του δεν θα δει τίποτα λογικό.

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

Η διόρθωση από την πλευρά του διακομιστή

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

Αυτό κάνει το Redate. Η υπηρεσία συνδέεται στο γραμματοκιβώτιο (Google Workspace μέσω domain-wide delegation, Microsoft 365, Outlook.com και Hotmail με τον λογαριασμό Microsoft κάθε χρήστη, ή απευθείας IMAP με τη διεύθυνση και τον κωδικό). Δεν χρειάζεται να ξέρει ποιο εργαλείο προκάλεσε το πρόβλημα: εντοπίζει τα email των οποίων η ημερομηνία που εμφανίζεται δεν αντιστοιχεί στην αρχική τους ημερομηνία, είτε η αιτία είναι ένα drag and drop από Takeout mbox είτε κάτι άλλο. Η σάρωση του γραμματοκιβωτίου είναι δωρεάν και σας δείχνει το μέγεθος της ζημιάς πριν από οποιαδήποτε απόφαση.

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

Γιατί το να τα καταφέρετε μόνοι σας είναι ριψοκίνδυνο

Άλλο να καταλαβαίνετε το πρόβλημα. Και άλλο να το διορθώσετε σε 15.000 email χωρίς να χάσετε ούτε ένα.

Ένα script που δουλεύει σε δέκα δοκιμαστικά μηνύματα δεν αντέχει σε ένα γραμματοκιβώτιο παραγωγής με 30.000 μηνύματα. Θα συναντήσει υπογεγραμμένα email S/MIME, όπου η παραμικρή αλλαγή σπάει την υπογραφή. Κρυπτογραφημένα μηνύματα PGP. Ένθετες δομές multipart/alternative, ασυνεπή όρια MIME, απρόσμενα Content-Transfer-Encoding, κεφαλίδες με χαρακτήρες εκτός ASCII κωδικοποιημένες κατά RFC 2047, συνημμένα των 40 MB. Ύστερα έρχονται τα quotas των API, το σφάλμα 429 Too Many Requests στις 3 τα ξημερώματα στη μέση ενός batch, τα timeouts δικτύου που διακόπτουν τη διαδικασία στο μήνυμα 11.874.

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

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

Ανάλογα με το πρόγραμμα που χρησιμοποιήσατε για την αντιγραφή, οι παρακάτω αναλυτικοί οδηγοί περιγράφουν τη συγκεκριμένη περίπτωση: διόρθωση ημερομηνιών μιας αντιγραφής IMAP που έγινε στο Thunderbird και η ίδια περίπτωση στο Apple Mail.

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

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