Τι είναι ένα αρχείο MBOX;
Η μορφή αρχείου MBox είναι ένας γενικός όρος που αντιπροσωπεύει ένα κοντέινερ για τη συλλογή μηνυμάτων ηλεκτρονικού ταχυδρομείου. Τα μηνύματα αποθηκεύονται μέσα στο κοντέινερ μαζί με τα συνημμένα τους. Τα μηνύματα από έναν ολόκληρο φάκελο αποθηκεύονται σε ένα μόνο αρχείο βάσης δεδομένων και τα νέα μηνύματα προστίθενται στο τέλος του αρχείου. Πολλές εφαρμογές και API παρέχουν υποστήριξη για μορφή αρχείου MBox, όπως το Apple Mail και το Mozilla Thunderbird.
Μορφή αρχείου MBOX
Η μορφή αρχείου MBox παρέμεινε μη τυποποιημένη για αρκετό καιρό μέχρι το 2005, όταν η εφαρμογή/mbox τυποποιήθηκε ως RFC 4155. Μηνύματα, σε μορφή RFC 2822 , συνενώνονται σε μορφή αρχείου MBox το ένα μετά το άλλο. Κάθε μήνυμα ξεκινά με μια διαχωριστική γραμμή που προσδιορίζει τον αποστολέα του μηνύματος και επίσης προσδιορίζει την ημερομηνία και την ώρα κατά την οποία το μήνυμα ελήφθη από τον τελικό παραλήπτη (είτε το σύστημα τελευταίας μετάβασης στη διαδρομή μεταφοράς είτε το σύστημα που χρησιμεύει ως το σύστημα του παραλήπτη ταχυδρομείο). Κάθε μήνυμα συνήθως τερματίζεται από μια κενή γραμμή. Το τέλος της βάσης δεδομένων συνήθως αναγνωρίζεται είτε από την απουσία πρόσθετων δεδομένων είτε από την παρουσία ενός σαφούς δείκτη τέλους αρχείου.
Ανάγνωση μηνύματος από το αρχείο MBox
Ένας αναγνώστης σαρώνει μέσα από ένα αρχείο mbox αναζητώντας γραμμές From_. Οποιαδήποτε γραμμή From_ σηματοδοτεί την αρχή ενός μηνύματος. Ο αναγνώστης δεν πρέπει να επιχειρήσει να εκμεταλλευτεί το γεγονός ότι κάθε γραμμή From_ (πέρα από την αρχή του αρχείου) είναι κενή γραμμή. Μόλις ο αναγνώστης βρει ένα μήνυμα, εξάγει έναν (πιθανώς κατεστραμμένο) αποστολέα φακέλου και ημερομηνία παράδοσης από τη γραμμή From_. Στη συνέχεια διαβάζεται μέχρι την επόμενη γραμμή From_ ή το τέλος του αρχείου, όποιο από τα δύο έρθει πρώτο. Αφαιρεί την τελική κενή γραμμή και διαγράφει την παράθεση των γραμμών >From_ και »From_ lines και ούτω καθεξής. Το αποτέλεσμα είναι ένα μήνυμα RFC 822.
Θέματα κωδικοποίησης
Τα περιεχόμενα ενός αρχείου MBox μπορούν να αναμειχθούν αμετάκλητα όταν ένα email που λαμβάνεται περιέχει ένα αρχείο Mbox ως συνημμένο και αποθηκεύεται σε άλλο αρχείο Mbox. Για να αποφευχθεί αυτό, τα συστήματα ανταλλαγής μηνυμάτων πρέπει να κωδικοποιούν μια βάση δεδομένων mbox με αδιαφανή κωδικοποίηση μεταφοράς (όπως BASE64 ή Quoted-Printable) κάθε φορά που ένα τέτοιο αντικείμενο μεταφέρεται μέσω πρωτοκόλλων μηνυμάτων. Οι υπεύθυνοι υλοποίησης θα πρέπει επίσης να είναι έτοιμοι να κωδικοποιήσουν τοπικά δεδομένα mbox, εάν ληφθούν μη συμμορφούμενα δεδομένα.