Jump to content

Мбокс

Mbox — это общий термин для семейства связанных форматов файлов, используемых для хранения коллекций сообщений электронной почты . Впервые он был реализован в пятом издании Unix .

Все сообщения в почтовом ящике mbox объединяются и сохраняются в виде обычного текста в одном файле. Каждое сообщение начинается с четырех символов «От», за которыми следует пробел (так называемая строка «От_») и адрес электронной почты отправителя. RFC 4155 определяет, что временная метка UTC следует после другого символа разделительного пробела. [1]

Однако, как отмечается в RFC, между различными системами хранения существуют огромные различия. В качестве конкретного примера: при экспорте через IMAP популярная служба Gmail использует - в качестве заполнителя вместо адреса отправителя, за которым следует временная метка, представляющая либо время настройки экспорта IMAP, либо время получения (в зависимости от того, что является более поздним). и не пытается экранировать строки «От -», которые появляются в теле электронного письма.

Формат, аналогичный mbox, — это MH Message Handling System . Другие системы, такие как Microsoft Exchange Server и сервер Cyrus IMAP , хранят почтовые ящики в централизованных базах данных, управляемых почтовой системой и недоступных напрямую отдельным пользователям. Формат почтового ящика maildir часто упоминается как альтернатива формату mbox для сетевых систем хранения электронной почты.

Протоколы хранения почты

[ редактировать ]

В отличие от интернет-протоколов, используемых для обмена электронной почтой, формат, используемый для хранения электронной почты, никогда официально не определялся механизмом стандартизации RFC и был полностью оставлен на усмотрение разработчика почтового клиента. Однако стандарт POSIX определял свободную структуру в сочетании с программой mailx . В 2005 году тип носителя application/mbox был стандартизирован как RFC 4155, в котором указывалось, что mbox хранит сообщения почтового ящика в исходном формате интернет-сообщений (RFC 2822), за исключением используемого символа новой строки, семибитного чистого хранилища данных и требования что каждое вновь добавленное сообщение заканчивается совершенно пустой строкой в ​​базе данных mbox. [1] [2]

Семья Мбокс

[ редактировать ]

В формате mbox для разделения сообщений используется одна пустая строка, за которой следует строка «От» (с пробелом); это может создать двусмысленность, если сообщение содержит одну и ту же последовательность в тексте сообщения.

С годами возникли четыре популярных, но несовместимых варианта: mboxo , mboxrd , mboxcl и mboxcl2 . Схема именования была разработана Дэниелом Дж. Бернстайном , Рахулом Дези и другими в 1996 году. Каждый из них возник из разных версий Unix . mboxcl и mboxcl2 возникли из формата файлов, используемого почтовыми инструментами Unix System V Release 4. mboxrd был изобретен Рахулом Дези и др. как рационализация mboxo и впоследствии принят некоторыми почтовыми инструментами Unix, включая qmail .

Проблема всех этих вариантов заключается в том, что иногда содержимое сообщения необходимо изменить для устранения двусмысленности, как показано ниже, чтобы приложения знали, какое правило цитирования использовалось для правильного возврата, что оказалось непрактичным. Использование MIME и выбор кодировки передачи контента, которая цитирует строки «From_» в соответствии со стандартами, гарантирует, что не нужно будет изменять содержимое сообщения, а только его MIME- представление. Таким образом, контрольные суммы остаются постоянными, что является необходимым предварительным условием для поддержки S/MIME и Pretty Good Privacy . Приложения, которые заново создают сообщения и сохраняют их в файлах базы данных mbox, скорее всего, будут использовать этот подход для отделения содержимого сообщения от формата хранения базы данных.

mboxo и mboxrd определяют начало сообщения, сканируя строки «От» , расположенные перед заголовками сообщений электронной почты. Если " From " Строка встречается в начале строки либо в заголовке, либо в теле сообщения (нарушение почтового стандарта для первого, но не для последнего), сообщение электронной почты должно быть изменено, прежде чем оно будет сохранено в mbox почтовом ящике . файл или строка будет считаться границей сообщения, чтобы избежать неправильной интерпретации ". From " строка в начале строки в теле письма как начало нового письма, в некоторых системах "From-munge" [3] сообщение, обычно путем добавления знака «больше»:

   >From my point of view...

В формате mboxo такие строки имеют необратимую неоднозначность. [4] В формате mboxo это может привести к повреждению сообщения. Если строка уже содержит >From  в начале (например, в цитате) при написании оно не изменяется. При последующем чтении почтовым программным обеспечением ведущий > ошибочно удаляется. Формат mboxrd решает эту проблему путем преобразования From  к >From  и конвертация >From  к >>From и т. д. Тогда преобразование всегда обратимо. [5]

Пример:

From MAILER-DAEMON Fri Jul  8 12:08:34 2011
From: Author <[email protected]>
To: Recipient <[email protected]>
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 <[email protected]>
To: Recipient <[email protected]>
Subject: Sample message 2
 
This is the second body.

Форматы mboxcl и mboxcl2 используют Content-Length: заголовок для определения длины сообщений и, следовательно, следующей реальной строки From . mboxcl по-прежнему цитирует строки From в самих сообщениях, как это делает mboxrd , а mboxcl2 этого не делает.

Модифицированный мбокс

[ редактировать ]

Некоторые почтовые клиенты используют модификацию формата mbox для своих почтовых папок.

  • Юдора использовала вариант mboxo , в котором адрес электронной почты отправителя заменяется постоянной строкой «???@???». Большинство клиентов mbox сохраняют входящие сообщения в том виде, в каком они были получены. Eudora отделяет вложения, встроенные в сообщение, сохраняя их как отдельные файлы в одной папке. [6]
  • Семейство почтовых клиентов Mozilla (Mozilla, Netscape, Thunderbird и др.) использует вариант mboxrd с более сложными строки From . правилами цитирования [7]

Блокировка файлов

[ редактировать ]

Поскольку в одном файле хранится более одного сообщения, некоторая форма блокировки файла необходима , чтобы избежать повреждения, которое может возникнуть в результате одновременного изменения почтового ящика двумя или более процессами. Это может произойти, если программа сетевой доставки электронной почты доставляет новое сообщение в то время, когда программа чтения почты удаляет существующее сообщение.

Различные форматы mbox использовали различные взаимонесовместимые механизмы для блокировки файлов сообщений, в том числе fcntl() и lockf(). Это не очень хорошо работает с сетевыми файловыми системами, такими как сетевая файловая система (NFS) , поэтому традиционно Unix использовал дополнительные файлы «точечной блокировки», которые можно было создавать атомарно даже через NFS.

Файлы Mbox также должны быть заблокированы во время их чтения. В противном случае читатель может увидеть поврежденное содержимое сообщения, если другой процесс одновременно изменяет mbox, даже если фактического повреждения файла не происходит.

В формате патча

[ редактировать ]

При разработке с открытым исходным кодом обычно рассылаются патчи в формате diff в список рассылки для обсуждения. Формат diff позволяет добавлять ненужные «заголовки», такие как данные mbox. [8] [9] Системы контроля версий , такие как git, поддерживают создание патчей в формате mbox и отправку их в список в виде электронных писем в цепочке. [10] [11]

См. также

[ редактировать ]
  1. ^ Перейти обратно: а б Холл, Э., изд. (сентябрь 2005 г.). «Запрос комментариев: 4155 — Тип носителя application/mbox» . Рабочая группа по интернет-инжинирингу . Архивировано из оригинала 17 мая 2021 года . Проверено 17 мая 2021 г.
  2. ^ Резник, П., изд. (апрель 2001 г.). «Запрос комментариев: 2822 – Формат интернет-сообщения» . Рабочая группа по интернет-инжинирингу . Архивировано из оригинала 31 марта 2023 года . Проверено 17 мая 2021 г.
  3. ^ Гелленс, Р., изд. (февраль 2004 г.). «Запрос комментариев: 3676 — Текстовый/обычный формат и параметры DelSp — Раздел 4.4: Заполнение пробелов» . Рабочая группа по интернет-инжинирингу . Архивировано из оригинала 16 мая 2021 года . Проверено 17 мая 2021 г.
  4. ^ «Настройка Netscape Mail в Unix: почему формат длины контента плохой». Архивировано 8 апреля 2009 г. на Wayback Machine. Джейми Завински, 1997 г.
  5. ^ де Бойн Поллард, Джонатан (2004). « mbox» — это семейство нескольких взаимно несовместимых форматов почтовых ящиков . Часто встречающиеся ответы. Архивировано из оригинала 31 декабря 2020 года . Проверено 20 марта 2023 г.
  6. ^ «Руководство пользователя Eudora 6.2.4 для Mac» (PDF) . п. 113. Архивировано из оригинала (PDF) 12 июля 2014 г. Проверено 29 октября 2015 г.
  7. ^ «Импорт и экспорт вашей почты — База знаний MozillaZine» . kb.mozillazine.org . Архивировано из оригинала 3 июля 2013 г. Проверено 18 июня 2011 г.
  8. ^ «Отправка патчей: основное руководство по добавлению вашего кода в ядро ​​— Документация ядра Linux» . www.kernel.org . Архивировано из оригинала 27 октября 2019 г. Проверено 3 марта 2020 г.
  9. ^ Рэндал, Эллисон; Сугальски, Дэн; Тётч, Леопольд (2003). «Отправка патча». Основы Perl 6 . О'Рейли Медиа, Инк. с. 14 . ISBN  978-0-596-00499-6 .
  10. ^ «Git — Документация git-format-patch» . git-scm.com . Архивировано из оригинала 07 марта 2020 г. Проверено 3 марта 2020 г.
  11. ^ «Git — Документация git-send-email» . git-scm.com . Архивировано из оригинала 21 февраля 2020 г. Проверено 3 марта 2020 г.

Дальнейшее чтение

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 454059b85731179e71ef0a9526809973__1719761220
URL1:https://arc.ask3.ru/arc/aa/45/73/454059b85731179e71ef0a9526809973.html
Заголовок, (Title) документа по адресу, URL1:
Mbox - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)