mbox

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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». Архів оригіналу за 12 липня 2014. Процитовано 28 січня 2022. 
  2. «Importing and exporting your mail»