27. Транспорт autoreply


    Транспорт autoreply - не истинный транспорт, в нём не происходит передачи сообщения. Вместо этого, генерится новое почтовое сообщение, как автоматический ответ на входящее сообщение. Включаются строки заголовков References: и Auto-Submitted: . Они создаются согласно правилам в RFC2822 и RFC3834, соответственно.
   Если в роутере передающем сообщение этому транспорту не установлена опция
unseen , оригинальное сообщение (для текущего получателя), не доставляется куда-либо. Однако, когда в роутере передающем сообщение этому транспорту установлена опция unseen , роутинг адреса продолжается таким образом, чтобы другой маршрутизатор мог выполнить нормальную доставку.
   Транспорт
autoreply , обычно, запускается как результат почтовой фильтрации, отпускные сообщения (видимо, автоответ пока человек в отпуске - прим lissyara), - являются стандартным примером. Однако, также он может быть выполнен напрямую из роутера, как и любой другой транспорт. Для уменьшения возможных каскадов сообщений, сообщения созданные транспортом autoreply всегда имеют пустого отправителя, как и рикошеты.
   Параметры посылаемого сообщения могут быть заданы в конфигурации путём описанных ниже опций. Однако, они используются лишь когда адрес, передаваемый транспорту, не содержит собственной информации ответа. Когда транспорт выполняется как следствие команды
mail или vacation в файле фильтра, параметры сообщения, переданные фильтром, передаются вместе с адресом. Транспортные опции, определяющие сообщение, в таком случае игнорируются (таким образом, обычно, в этом случае они не устанавливаются). Сообщение полностью определено фильтром, или транспортом; они никогда не состоят из смеси этих опций. Однако, опции file_optional , mode и return_message применяются во всех случаях.
   Транспорт
autoreply осуществляется как локальный транспорт. При использовании его как результат команды в пользовательском файле фильтра, autoreply , обычно работает под uid и gid пользователя, и с соответствующими текущей и домашней директориями (смотрите раздел 23).
   Есть трудноуловимое различие между роутингом сообщения в транспорт
pipe , который генерит некий текст для возвращения отправителю, и роутингом его в транспорт autoreply . Это различие заметно лишь если обрабатывается более одного адреса в одном сообщении. В случае pipe , раздельные выводы от различных адресов собираются и возвращаются отправителю в одном сообщении, тогда как при использовании autoreply для каждого адреса генерятся различные сообщения для передачи.
   Непечатные символы не разрешены в строках заголовков сгенерённых для сообщения созданного
autoreply , за исключением символа новой строки, немедленно сопровождаемого пробелом. Если найдены любые непечатные символы, транспорт задерживается. Глобальная опция print_topbitchars управляет считать ли символы с установленным высшим битом как печатные, или нет. Они не применяются непосредственно к сгенерённому сообщению.
   Если любые из общих опций для манипуляции заголовками (например,
headers_add ) установлена в транспорте autoreply , они применяются к копии оригинального сообщения, включённой в сгенерированное сообщение, когда установлена return_message . Они не применяются непосредственно к сгенрированному сообщению.
   Если транспорт
autoreply получает от exim код возврата 2 при предоставлении сообщения, указывая, что не было получателей, это не обрабатывается как ошибка. Это означает, что автответы посылались на $sender_address когда она была пуста (поскольку входящее сообщение - рикошет), не вызывая проблем. Они лишь отбрасываются.

27.1 Частные опции для autoreply

Имя
Использование
Тип
Дефолтовое значение
bcc autoreply string† незадана

   Этим определяются адреса которые должны получать слепые копии (blind carbon copies) сообщений, когда сообщение определено транспортом.

Имя
Использование
Тип
Дефолтовое значение
cc autoreply string† незадана

   Этим определяются получатели сообщения и содержимое заголовка Cc: , когда сообщение определено транспортом.

Имя
Использование
Тип
Дефолтовое значение
file autoreply string† незадана

   Содержимое файла посылается как тело сообщения, когда сообщение определно транспортом. Если установлены обе опции - file и text , более важна текстовая строка.

Имя
Использование
Тип
Дефолтовое значение
file_expand autoreply boolean ложь

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

Имя
Использование
Тип
Дефолтовое значение
file_optional autoreply boolean ложь

   Если эта опция истинна, не генится ошибка, если файл названный в опции file , или пришедший с адресом не существует, или нечитаем.

Имя
Использование
Тип
Дефолтовое значение
from autoreply string† незадана

   Этим определяется содержимое заголовка From: , когда сообщение определено транспортом.

Имя
Использование
Тип
Дефолтовое значение
headers autoreply string† незадана

   Этим определяются дополнительные заголовки, согдасно RFC2822, которые должны быть добавлены к сообщению, когда сообщение определено транспортом. Можно задать несколько, путём использования \n для их разделения. Проверка их формата отсутствует.

Имя
Использование
Тип
Дефолтовое значение
log autoreply boolean незадана

   Имя этой опции - файл, в который записывается каждое посланное сообщение, когда сообщение определено транспортом.

Имя
Использование
Тип
Дефолтовое значение
mode autoreply octal integer 0600

   Этот режим используется если создаётся файл логов, или файл once.

Имя
Использование
Тип
Дефолтовое значение
never_mail autoreply address list† незадана

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

Имя
Использование
Тип
Дефолтовое значение
once autoreply string† незадана

   Эта опция - имя файла или БД DBM в которой сохраняются записи каждого To: получателя, когда сообщение определено транспортом. Отметтьте: Это не применяется к получателям Cc: и Bcc: .
   Если
once незадана, или установлена в пустую строку, сообщение всегда шлётся. По умолчанию, если once установлена в непустое имя файла, сообщение не шлётся, если потенциальный получатель уже перечислен в БД. Однако, если опция once_repeat определяет время более нуля, сообщение посылается, если прошло столько времени с тех пор как было послано последнее сообщение этому получателю. Установка нулевого времени в once_repeat (по умолчанию) препятствует повторной отсылке сообщения - в этом случае, ноль - указание бесконечности.
   Если
once_file_size - ноль, база данных DBM используется для запоминания получателей, и этим ей позволяется быть любого необходимого размера. Если once_file_size установлена более нуля, это изменяет способ, которым exim осуществляет опцию once . Вместо использования DBM базы для записи каждого получателя, он использует регулярный файл, который никогда не будет больше установленного размера.
   В файле, exim хранит линейный список адресов получателей и времён, когда ис было послано сообщение. Если файл полон при необходимости добавить новую запись, удаляется самый старый адрес. Если
once_repeat не установлена, это означает, что данный получатель может получать много сообщений, но в непредсказуемых интарвалах, зависящих от частоты оборота адресов в файле. Если установлена once_repeat , она определяет максимально время между повторениями.

Имя
Использование
Тип
Дефолтовое значение
once_file_size autoreply integer 0

   Смотрите выше, опцию once .

Имя
Использование
Тип
Дефолтовое значение
once_repeat autoreply time† 0s

   Смотрите выше, опцию once . После раскрытия, значение это йопции должно быть допустимым значением времени.

Имя
Использование
Тип
Дефолтовое значение
reply_to autoreply string† незадана

   Этой опцией определяется содержимое заголовка Reply-To: , когда сообщение определено транспортом.

Имя
Использование
Тип
Дефолтовое значение
return_message autoreply boolean ложь

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

Имя
Использование
Тип
Дефолтовое значение
subject autoreply string† незадана

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

subject = Re: $h_subject:


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

Имя
Использование
Тип
Дефолтовое значение
text autoreply string† незадана

   Этой опцией определяется одна строка, которая будет использоваться как тело сообщения, когда сообщение определено транспортом. Если заданы и text и file , вначале используется text .

Имя
Использование
Тип
Дефолтовое значение
to autoreply string† незадана

   Этой опцией определяются получатели сообщения, и содержимое заголовка To: , когда сообщение определено транспортом.




=============
Автор перевода: lissyara, оригинал: http://www.lissyara.su/?id=1200