Що таке файл 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 може необоротно змішуватися, коли отриманий електронний лист містить файл Mbox як вкладення та зберігається в іншому файлі Mbox. Щоб уникнути цього, системи обміну повідомленнями повинні кодувати базу даних mbox за допомогою непрозорого кодування передачі (наприклад, BASE64 або Quoted-Printable), коли такий об’єкт передається через протоколи обміну повідомленнями. Розробники також повинні бути готові локально кодувати дані mbox у разі отримання невідповідних даних.