Транспорт “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:”, когда сообщение определено транспортом.