mbox — загальна назва форматів файлів, що використовуються для зберігання повідомлень електронної пошти. Всі повідомлення в поштовій скриньці формату mbox знаходяться в одному текстовому файлі. Початок поштового повідомлення визначається рядком з 5 символів: словом «From» з наступним пробілом. В кінці кожного повідомлення знаходиться пустий рядок.

Формат mbox досі популярний через зручність застосування з програмами обробки тексту.

На відміну від протоколів Інтернету, що використовуються для обміну повідомленнями, формат зберігання електронних повідомлень не був введений за допомогою RFC, а створювався розробниками ПЗ для роботи з електронною поштою.

В mbox (RFC 4155) повідомлення зберігаються у файлах, безпосередньо доступних користувачам, в оригінальному форматі Internet Message (RFC 2822). Так само, як і в іншій формі поштових скриньок MH Message Handling System. Інші системи, такі як Microsoft Exchange Server і Cyrus IMAP Server, зберігають поштові скриньки в централізованих базах даних, що обслуговуються поштовою системою і недоступні користувачам безпосередньо.

Альтернативою mbox часто називають формат зберігання електронних повідомлень maildir.

Сімейство форматів

ред.

Існує чотири несумісних між собою формати mbox: mboxo, mboxrd, mboxcl і mboxcl2, що походять з різних версій Unix. Схема найменування була розроблена Daniel J. Bernstein, Rahul Dhesi та іншими в 1996 році. mboxcl і mboxcl2 беруть початок з формату файлів, використовуваних поштовими програмами Unix System V Release 4. mboxrd був розроблений Rahul Dhesi зі співавторами, як покращений варіант mboxo, згодом був адаптований для використання деякими поштовими програмами Unix, включаючи qmail (ориг.: «and subsequently adopted by some Unix mail tools including qmail»).

mboxo і mboxrd визначають початок нового повідомлення по рядку, що починається зі слова «From», яке може міститися як в заголовку поштового повідомлення, так і в його тілі (стара помилка стандарту електронної пошти, яка, можливо, актуальна ще й досі) (ориг.: «a mail standard violation for the former, but likely for the latter»). Перед збереженням у поштовій скриньці формату mbox рядки тіла повідомлення, що починаються зі слова «From» повинні бути попереджені символом «більше»:

  >From my point of view...

, що у форматі mbox може призвести до пошкодження повідомлення: якщо символ «більше» вже є на початку рядка перед «From», він залишається без змін. Надалі, при читанні електронної пошти, програма помилково видаляє початковий знак «>». Формат mboxrd вирішує цю проблему заміною «From» на >From і «>From» на «>>From». Таке перетворення завжди є зворотнім.

Приклад:

From MAILER-DAEMON Fri Jul 8 12:08:34 2011
From: Author <author@example.com>
To: Recipient <recipient@example.com>
Subject: Sample message 1

This is the body.
>From (should be escaped).
There are 3 lines.

From MAILER-DAEMON Fri Jul 8 12:08:34 2011
From: Author <author@example.com>
To: Recipient <recipient@example.com>
Subject: Sample message 2

This is the second body.

Формат mboxcl і mboxcl2 використовують заголовок «Content-Length:» для визначення довжини повідомлення і знаходження «справжніх» полів «From». mboxcl все ще використовує «>» для екранування «From», mboxcl2 — ні.

Змінений mbox

ред.

Деякі програми використовують для своїх потреб модифікації mbox:

  • поштовий клієнт Eudora використовує змінений варіант mboxo, в якому адресу відправника замінено рядком «???@???». Більшість програм поміщають листи в mbox у незмінному вигляді. Eudora зберігає вкладення у вигляді файлів в окремому каталозі;[1]
  • програми сімейства Mozilla (Mozilla Firefox, Netscape Navigator, Thunderbird та інші) використовують варіант mboxrd з ускладненими правилами екранування рядків «From».[2]

Блокування файлів

ред.

Варіанти mbox використовують різні, несумісні між собою механізми блокування файлів: fcntl(), lockf(), «dot locking». Це не надійно при використанні мережевих файлових систем, наприклад NFS.

Блокування файлів необхідне тому, що безліч повідомлень зберігаються в одному файлі, який може бути пошкоджений при одночасній спробі запису кількома програмами. Таке може статися, якщо програма доставки електронної пошти додає нові повідомлення в той момент, коли програма читання пошти видаляє старе повідомлення.

Рекомендується блокувати файли mbox навіть при простому читанні пошти. Інакше можна побачити пошкоджене повідомлення, якщо інший процес змінює файл в цей час.

Див. також

ред.

Примітки

ред.
  1. «Eudora 6.2.4 Mac user Guide, page 113» (PDF). Архів оригіналу (PDF) за 12 липня 2014. Процитовано 28 січня 2022.
  2. «Importing and exporting your mail»