ПРИЛОЖЕНИЕ B

ФОРМАТЫ ФАЙЛОВ ОЧЕРЕДИ

Это приложение описывает формат файлов очереди. Эти файлы живут в каталоге, определенном опцией Q sendmail.cf, обычно /var/spool/mqueue или /usr/spool/mqueue.

Все файлы очереди имеют имена xfAAA99999, где AAA99999 - идентификатор этого сообщения, а x - его тип. Первая буква идентификатора кодирует время дня получения сообщения системой (буква A означает часы между полуночью и 1:00AM). Все файлы с одним идентификатором вместе определяют одно сообщение.

Типы сообщений:

d Файл данных. Тело сообщения (исключая заголовок) хранится в этом файле.
q Контрольный файл очереди. Этот файл содержит информацию, необходимую для обработки.
t Временный файл. Это имидж файла qf во время его перестройки. Он должен очень быстро переименоваться в файл qf .
x Файл переписи, существует во время сессии, показывая все, что случается во время этой сессии.

Файл qf структурируется как последовательность строк, каждая из которых начинается с кодовой буквы. Существуют следующие строки:

V Номер версии формата файла очереди, используется для того, чтобы позволить новым бинарникам sendmail читать файлы очереди, созданные более ранними версиями. По умолчанию ноль. Если есть, то должна быть первой строкой в файле.
H Определение заголовка. Таких строк может быть несколько. Порядок их очень важен: Он представляет собой порядок в конечном сообщении. используется тот же синтаксис, как и для определений заголовков в файле конфигурации.
C Контрольный адрес. Синтаксис "localuser:aliasname". Адрес получателя, следующий за этой строкой будет иметь такие флаги, что доставка будет производиться от localuser (имя пользователя из файла /etc/passwd file); aliasname - это имя псевдонима, расширяющегося на этот адрес (используеися для печати сообщений).
Q "Оригинальный получатель", определяемый полем ORCPT= в транзакции ESMTP. Используется только для Уведомлений о Статусе Доставки. Применяется только сразу после строки "R".
R Адрес получателя. Будет по одной строке на каждого получателя. Файлы qf Версии 1 также включают ведущий список флагов, заканчивающийся двоеточием, которые могут быть "S" для возврата сообщения при успешной заключительной доставке, "F" для возврата сообщения при неудаче, "D" для возврата сообщения, если оно отложено, "B" для указания того, что должно быть возвращено тело, "N" для подавления возврата тела, и "P" для декларации этого адреса как "первичного" (primary) (командная строка или сессия SMTP).
S Адрес отправителя. Такая строка может быть только одна.
T Время создания работы. Используется для подсчета истечения таймаута работы.
P Текущий приритет сообщения. Используется для упорядочивания очереди. Более высокие числа означают более низкий приоритет. Во время нахождения сообщения в очереди приоритет изменяется. Изначальный приритет зависит от класса сообщения и его размера.
M Сообщение. Эта строка печатается командой mailq, и обычно используется для хранения информации о статусе. Может содержать любой текст.
F Флаговые биты, одна буква на флаг. Определенные флаговые биты: r - показывает, что это ответное сообщение и w - показывает что было послано сообщение с предупреждением о задержке почты.
N Общее количество попыток доставки.
K Время последней попытки доставки (в секундах с 1 Января 1970г.).
I Идентификационный номер файла данных; может быть использован для восстановления почтовой очереди после катастрофического "падения" диска.
$ Определение макроса. Значения конкретных макросов (во время написания этого документа, только $r и $s) передаваемые во время обработки очереди.
B Тип тела. Конец строки - текстовое описание типа тела. Если это поле отсутствует, тип тела считается "неопределенным" ("undefined") и не производится никакой специальной обработки. Легальные значения "7BIT" и "8BITMIME".
O Оригинальное значение MTS (из транзакции ESMTP). Только для Уведомлений о Статусе Доставки.
Z Оригинальный конвертный идентификатор (из транзакции ESMTP). Только для Уведомлений о Статусе Доставки.

Например, файл из очереди6 посланный к "eric@mammoth.Berkeley.EDU" и "bostic@okeeffe.CS.Berkeley.EDU":

P835771 T404261372 Seric Ceric:sendmail@vangogh.CS.Berkeley.EDU Reric@mammoth.Berkeley.EDU Rbostic@okeeffe.CS.Berkeley.EDU H?P?return-path: <owner-sendmail@vangogh.CS.Berkeley.EDU> Hreceived: by vangogh.CS.Berkeley.EDU (5.108/2.7) id AAA06703; Fri, 17 Jul 92 00:28:55 -0700 Hreceived: from mail.CS.Berkeley.EDU by vangogh.CS.Berkeley.EDU (5.108/2.7) id AAA06698; Fri, 17 Jul 92 00:28:54 -0700 Hreceived: from [128.32.31.21] by mail.CS.Berkeley.EDU (5.96/2.5) id AA22777; Fri, 17 Jul 92 03:29:14 -0400 Hreceived: by foo.bar.baz.de (5.57/Ultrix3.0-C) id AA22757; Fri, 17 Jul 92 09:31:25 GMT H?F?from: eric@foo.bar.baz.de (Eric Allman) H?x?full-name: Eric Allman Hmessage-id: <9207170931.AA22757@foo.bar.baz.de> HTo: sendmail@vangogh.CS.Berkeley.EDU Hsubject: this is an example message

Здесь видно от кого послано это сообщение, время представления сообщения (в секундах с 1 Января1970г.), приоритет сообщения, его класс, получателей, и заголовки для сообщения.