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 2011From:Author<author@example.com>To:Recipient<recipient@example.com>Subject:Samplemessage1This is the body.>From (should be escaped).There are 3 lines.From MAILER-DAEMON Fri Jul 8 12:08:34 2011From: Author <author@example.com>To: Recipient <recipient@example.com>Subject: Sample message 2This is the second body.
Форматmboxcl іmboxcl2 використовують заголовок «Content-Length:» для визначення довжини повідомлення і знаходження «справжніх» полів «From».mboxcl все ще використовує «>» дляекранування «From»,mboxcl2 — ні.
Деякі програми використовують для своїх потреб модифікаціїmbox:
Варіанти mbox використовують різні, несумісні між собою механізмиблокування файлів: fcntl(), lockf(), «dot locking». Це не надійно при використанні мережевих файлових систем, наприкладNFS.
Блокування файлів необхідне тому, що безліч повідомлень зберігаються в одному файлі, який може бути пошкоджений при одночасній спробі запису кількома програмами. Таке може статися, якщо програма доставки електронної пошти додає нові повідомлення в той момент, коли програма читання пошти видаляє старе повідомлення.
Рекомендується блокувати файли mbox навіть при простому читанні пошти. Інакше можна побачити пошкоджене повідомлення, якщо інший процес змінює файл в цей час.