10-05-2024
Тип |
Архив электронных писем |
---|---|
Разработчик |
Daniel J. Bernstein |
Maildir — это распространённый формат хранения электронной почты, не требующий монопольного захвата файла для обеспечения целостности почтового ящика при чтении, добавлении или изменении сообщений. Каждое сообщение хранится в отдельном файле. Все изменения делаются при помощи атомарных файловых операций, таким образом, монопольный захват файла ни в каком случае не нужен. Maildir — это каталог (чаще всего с именем Maildir
) с тремя подкаталогами: tmp
, new
и cur
.
При доставке сообщения оно помещается в файл в подкаталоге tmp
(например, SMTP сервером postfix), имя файла формируется из текущего времени, имени хоста, идентификатора процесса, создавшего этот файл, и некоторого случайного числа — таким образом, гарантируется уникальность имен файлов. После записи в файл всего сообщения создается жесткая ссылка на этот файл в каталоге new
, а текущая ссылка из tmp
удаляется — это делается для того, чтобы никакой другой процесс не смог прочитать содержимое сообщения до тех пор, пока оно не будет записано полностью. По такому же алгоритму при чтении сообщения (это может делать как MUA, так и другой MDA, предоставляющий доступ к Maildir по протоколу POP3 или IMAP) оно перемещается в каталог cur
, при этом название файла изменяется: к нему добавляются пометки о прочтении, ответе, удалении и т. д.
Maildir++ — это дальнейшее усовершенствование Maildir с поддержкой вложенных каталогов IMAP (они должны начитаться с «.») и квот.
Содержание |
Алгоритм² генерации уникальных имен файлов сочетает в себе время и имя хоста³.
Когда программа находит новые письма, то перемещает их в cur и добавляет информационный суффикс к имени файла перед тем как прочесть их.
Когда программа говорит, что сообщение было удалено, а на самом деле только пометки были изменены. Когда этот процесс обходит к списку сообщений опять же, «удален» внезапно появляется снова.
Mac OS X with HFS Plus (но не с ZFS) появляется, чтобы избежать этих проблем. Этот вопрос можно также избежать с Linux, внеся изменения в Maildir.
Maildir postfix, maildir junk, maildir converter.