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