![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Перевод выполнен Алексеем Паутовым в рамках
некоммерческого проекта RussianLDP
(http://www.rldp.ru/). Именно на этом сайте
и надлежит искать новые версии, если таковые будут.
Сообщение в очереди exim состоит из двух файлов,
чьи имена представляют собой идентификатор
сообщения, сопровождаемый -D и -H, соответственно. Часть данных сообщения
сохранется отдельно в файле -D. Конверт сообщения, статус и заголовки
сохраняются в файле -H, чей формат описан в этой части. Каждый из этих
двух файлов содержит финальный компонент его собственного имени,
как первую строку. Это страховка от дисковых ошибок, когда каталог потерян,
но сами файлы восстановимы.
Некоторые люди соблазняются редактированием файлов -D
с целью модифицировать сообщения. Вы должны быть черезвычайно осторожными,
если делаете это: такое не рекомендуется, и Вы делаете это на
свой страх и риск. Вот некоторые из ловушек:
Файлы, чьи имена заканчиваются на -J,
также могут быть замечены в каталоге input (или в его подкаталогах,
когда установлена split_spool_directory). Это файлы журналов,
используемые для записи адресов, на которые сообщение было доставлено во
время работы доставки. В конце доставки файл -H
обновляется, а файл -J удаляется. Вторая строка файла -H содержит логин
для uid процесса, который вызвал exim для чтения сообщения, сопровождаемое
цифровым uid и gid. Для локально сгенерированных сообщений обычно это
пользователь, пославший сообщение. Для сообщения, полученного
через TCP/IP, это пользователь exim.
Третья строка файла содержит адрес отправителя
сообщения как передано в конверте, содержащийся в угловых скобках.
Для рикошетов адрес отправителя пустой. Для входящей SMTP-почты отправитель
даётся в команде MAIL. Для локально сгенерированных сообщений
адрес отправителя создаётся exim из логина текущего пользователя и
сконфигурированного qualify_domain. Однако, это может быть
перезадано путём опции -f или начальной строки From,
если вызывающий доверенный, предоставленный адрес <> или адрес
совпадает с untrusted_set_senders.
Четвёртая строка содержит два числа.
Первое время, когда сообщение было получено, в обычном формате UNIX:
число секунд от начала эпохи. Второе число счётчик посланных отправителю
предупреждений о задержанной доставке получателю.
Далее следует множество строк, начинающихся с дефиса.
Они могут появляться в любом порядке и пропущены, если неуместны:
После опций присутствует список тех адресов,
на которые сообщение не было доставлено. Этот набор адресов инициализируется
из командной строки, когда используется опция -t и установлена
extract_addresses_remove_arguments,
иначе она выпускается пустой. Каждый раз, когда произведена успешная
доставка, адрес добавляется к этому набору. Адреса сохраняются внутренне, как
балансированное бинарное дерево, а это представление того дерева,
которое пишется в файл спула. Если адрес раскрывается через
файл алиасов или форвардов, оригинальный адрес добавляется к дереву,
когда завершается доставка всех дочерних адресов.
Если дерево пусто, присутствует единственная строка в
файле спула, содержащая лишь текст XX. Иначе, каждая строка содержит две
буквы, являющиеся Y или N, сопровождаемые адресом.
Адрес задает значение для узла дерева, а буквы индицируют, имеет ли узел
присоединенннёю левую и/или правую ветвь, соответственно.
Если ветви существуют, они следуют немедленно.
Вот пример дерева с тремя узлами:
После дерева неполучателей есть список получателей сообщения.
Это простой список с предществующим счётчиком. Он включает оригинальных
получателей сообщения, включая тех, кому сообщение уже доставлено.
В простом случае список содержит один адрес на строку. Например:
Однако, когда дочерний адрес добавляется
к списку вышестоящих адресов как результат использования опции
one_time в роутере redirect, каждая строка
имеет следующую форму:
Флаг 01 указывает присутствие трёх других полей,
которые сопровождают адрес высшего уровня. Иные биты могут использоваться в
будущем для поддержки дополнительных полей.
Смещение parent number в списке получателей оригинального
родителя адресов one_time. Первые два поля: отправитель конверта,
который ассоционирован с этим адресом и его длиной.
Если длина 0, специальный отправитель конверта отстутствует
(тогда в строке два символа пробела). Не пустое поле может являться
результатом роутера redirect: в котором установлена errors_to.
Пустая строка отделяет конверт и статусную
информацию от следующих заголовков. Заголовок может занять несколько строк
файла и с целью экономии усилий при его чтении каждому заголовку предшествует
число и идентификационный символ. Число определяет количество
символов в заголовке, включая любые встроенные новые строки и
завершающую новую строку. Символ один из следующих:
Удалённые или заменённые (перезаписанные)
заголовки остаются в файле спула для отладки. Они не передаются
при доставке сообщения. Вот типичный набор заголовков:
Заголовки, помеченные звёздочкой, индицируют, что
отправитель конверта, заголовок From: и заголовок To:
были перезаписаны, последний потому, что маршрутизация привёла
к неквалифицированному домену foundation.
52. Формат файлов спула
52.1. Формат файла -H
YY darcy@austen.fict.example
NN alice@wonderland.fict.example
NN editor@thesaurus.ref.example
4
editor@thesaurus.ref.example
darcy@austen.fict.example
rdo@foundation
alice@wonderland.fict.example
top-level address errors_to address length, parent number #flag bits
символ значение <blank> заголовок, который не интересует exim B заголовок Bcc: C заголовок Cc: F заголовок From: I заголовок Message-id: P заголовок Received: (P означает почтовый штемпель) R заголовок Reply-To: S заголовок Sender: T заголовок To: * заменённый или удалённый заголовок
111P Received: by hobbit.fict.example with local (Exim 4.00)
id 14y9EI-00026G-00; Fri, 11 May 2001 10:28:59 +0100
049 Message-Id: <E14y9EI-00026G-00@hobbit.fict.example>
038* X-rewrote-sender: bb@hobbit.fict.example
042* From: Bilbo Baggins <bb@hobbit.fict.example>
049F From: Bilbo Baggins <B.Baggins@hobbit.fict.example>
099* To: alice@wonderland.fict.example, rdo@foundation,
darcy@austen.fict.example, editor@thesaurus.ref.example
104T To: alice@wonderland.fict.example, rdo@foundation.example,
darcy@austen.fict.example, editor@thesaurus.ref.example
038 Date: Fri, 11 May 2001 10:28:59 +0100
Найди своих коллег! |