RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
YandexMoney: 
41001198119846 
E-gold:
5128052

Перевод выполнен Алексеем Паутовым в рамках некоммерческого проекта RussianLDP (http://www.rldp.ru/). Именно на этом сайте и надлежит искать новые версии, если таковые будут.

30. Транспорт SMTP

Транспорт smtp доставляет сообщения через TCP/IP соединения, используя протокол SMTP или LMTP. Список хостов для попыток доставки может быть взят из обрабатываемого адреса (будет установлен роутером) или явно определён для транспорта. Обработка таймаутов и повторов (смотрите раздел 32) применяется независимо к каждому IP-адресу.

30.1. Несколько сообщений в одном соединении

Отправка нескольких сообщений через одно TCP/IP-соединение может быть результатом двух путей:

  • Если сообщение содержит более, чем max_rcpt (смотрите ниже) адресов, которые направляются к одному и тому же хосту, к нему должна быть послана более, чем одна копия сообщения. В этой ситуации несколько копий могут быть посланы в одном запуске транспорта smtp через одно TCP/IP-соединение. Что, фактически, и делает exim, когда ему надо отослать очень много адресов в одном сообщении, также зависит от значения глобальной опции remote_max_parallel. Подробности даны в разделе 44.1.
  • Когда сообщение было успешно доставлено через TCP/IP-соединение, exim смотрит свою БД подсказок (hints) для нахождения, есть ли какие-либо другие сообщения, ожидающие подключения к тому же самому хосту. Если они есть, для одного из них начинается новый процесс доставки, и текущее TCP/IP-соединнеие передаётся ему. Новый процесс, в свою очередь, может посылать несколько копий, и, возможно, создать ещё один процесс.

Для каждой копии, посланной по одному и тому же TCP/IP-соединению, увеличивается счётчик последовательности, и, если его значение когда-либо добирается до connection_max_messages, по этому подключению сообщения более не посылаются.

30.2. Использование переменной $host

В начале запуска транспорта smtp значения $host и $host_address хранят имя и адрес первого хоста в списке хостов, переданном роутером. Однако, когда транспорт собирается соединяться с заданным хостом, и в то время, когда он соединён с этим хостом, в $host и $host_address устанавливаются значения этого хоста. Это значения, находящиеся в силе, когда раскрыты helo_data, hosts_try_auth, interface, serialize_hosts и различные опции TLS.

30.1. Частные опции для smtp

Частные опции транспорта smtp таковы:
ИмяИспользование ТипЗначение по умолчанию
allow_localhostsmtpboolean ложь

Когда хост, заданный в hosts или fallback_hosts (смотрите ниже), оказывается локальным хостом или перечислен в hosts_treat_as_local, по умолчанию доставка задерживается. Однако, если установлена опция allow_localhost, exim продолжает производить доставку. Это должно использоваться лишь в специальных случаях, когда конфигурация гарантирует, что в результата не будет циклов (например, порт, на который посылается сообщение, слушает иначе сконфигурированный exim).
ИмяИспользование ТипЗначение по умолчанию
authenticated_sendersmtpstring† не задана

Когда exim аутентифицирует клиента, или если истинна опция authenticated_sender_force, эта опция устанавливает значение для элемента AUTH= в исходящих командах MAIL, перезадавая любое существующее значение аутентифицированного отправителя. Если раскрытие строки принудительно неудачно, опция игнорируется. Иные ошибки раскрытия вызывают задержку доставки. Если результат раскрытия пустая строка, она также игнорируется.

Если SMTP-сессия не аутентифицирована, всё равно происходит раскрытие authenticated_sender (и может вызывать задержку доставки, если оно неудачно), но элемент AUTH= в команды MAIL не добавляется, исключая случай, когда истинна опция authenticated_sender_force.

Эта опция позволяет Вам использовать транспорт SMTP в режиме LMTP для доставки почты Cyrus IMAP и обеспечения надлежащей локальной части как authenticated sender с помощью установки типа:
authenticated_sender = $local_part

Это удаляет необходимость в субкаталогах IMAP для назначения специальных ACL, чтобы позволить прямую доставку в эти подкаталоги.

Поскольку ожидаемое использование типа описанного для Cyrus (когда домен не используется), нет проверки на синтаксис предоставляемого значения.
ИмяИспользование ТипЗначение по умолчанию
authenticated_sender_force smtpbooleanложь

Если эта опция истинна, значение опции authenticated_sender используется для элемента AUTH= в исходящих командах MAIL, когда exim не аутентифицирован как клиент.
ИмяИспользование ТипЗначение по умолчанию
command_timeoutsmtptime 5m

Эта опция определяет таймаут для получения ответа на отосланную SMTP-команду. Также это значение используется при ожидании начально приветственного сообщения с удалённого хоста. Это значение должно быть ненулевым.
ИмяИспользование ТипЗначение по умолчанию
connect_timeoutsmtptime 5m

Эта опция определяет таймаут для функции connect(), устанавливающей TCP/IP вызов к удалённому хосту. Значение нуля разрешает действовать системному таймауту (обычно несколько минут). Для какого-либо эффекта, это значение должно быть меньше системного таймаута. Однако, на некоторых системах наблюдалось отсутствие какого-либо системного таймаута, поэтому значение по умолчанию этой опции 5 минут, это значение рекомендовано RFC 1123.
ИмяИспользование ТипЗначение по умолчанию
connection_max_messagessmtpinteger 500

Эта опция контролирует максимальное число отдельных сообщений, доставляемых через одно TCP/IP соединение. Если значение равно нулю, нет ограничений. В целях теститрования это значение может быть перезадано опцией командной строки -oB.
ИмяИспользование ТипЗначение по умолчанию
data_timeoutsmtptime 5m

Эта опция определяет таймаут для передачи каждого блока в части данных сообщения. Как результат, полный таймаут зависит от размера сообщения. Значение не должно быть нулём. Также смотрите опцию final_timeout.
ИмяИспользование ТипЗначение по умолчанию
delay_after_cutoffsmtpboolean истина

Эта опция управляет тем, что происходит, когда все удалённые адреса для данного домена были недоступны так долго, что они были переданы их сокращающимся временам повторов.

В исходном состоянии, если в следующее время повтора ни один из них не был достигнут, адрес возвращается (в виде рикошета) без дальнейших попыток доставки. Другими словами, exim задерживает повторы IP-адресов после финального времени сокращения до достижения нового времени повтора, и поэтому адрес может сорваться без попыток доставки, когда машина недоступна долгое время. Если опция delay_after_cutoff установлена в ложь, exim ведёт себя по-другому. Если все адреса проходят их финальное время сокращения, exim пробует доставить тем адресам, которые не были опробованы с моменты прибытия сообщения. Если они отсутствуют, или все они неудачны, адрес срывается (генерируется рикошет). Другими словами, при прибытии нового сообщения задержки не происходит, немедленно пробуются адреса с истёкшим сроком, которые не пробовались с момента прибытия сообщения. Если существует продолжающийся поток сообщений к мёртвым хостам, незаданная опция delay_after_cutoff означает, что будет ещё много попыток доставки на них.
ИмяИспользование ТипЗначение по умолчанию
dns_qualify_singlesmtpboolean ложь

Если используются опции hosts и fallback_hosts, и опция gethostbyname ложна, то установлена опция RES_DEFNAMES ресолвера. Для дополнительных деталей смотрите опцию qualify_single в разделе 17.
ИмяИспользование ТипЗначение по умолчанию
dns_search_parentssmtpboolean ложь

Если используются опции hosts и fallback_hosts, и опция gethostbyname ложна, то установлена опция RES_DNSRCH ресолвера. Для дополнительных деталей смотрите опцию qualify_single в разделе 17.
ИмяИспользование ТипЗначение по умолчанию
dnssec_request_domainssmtpdomain list не задана

Поиски DNS для доменов, соответствующих dnssec_request_domains, будут сделаны с установленным битом запроса dnssec. Это относится ко всем запросам (SRV, MX A6, AAAA, A).
ИмяИспользование ТипЗначение по умолчанию
dnssec_require_domainssmtpdomain list не задана

Поиски DNS для доменов, соответствующих dnssec_require_domains, будут сделаны с установленным битом запроса dnssec. Любые ответы, не имеющие бита Authenticated Data (AD), будут проигнорированы и зарегистрированы как неудача поиска узла. Это относится ко всем запросам (SRV, MX A6, AAAA, A).
ИмяИспользование ТипЗначение по умолчанию
dscpsmtpstring не задана

Эта опция устанавливает переменную DSCP, связанную с сокетом, в значение конкретной строки или числа. Опция командной строки -bI:dscp перечисляет все известные значения. Числовые значения могут быть в диапазоне от 0 до 0x3F.

Исходящие пакеты Exim будут отмечены этим значением в заголовке (для IPv4 это поле TOS, для IPv6 поле TCLASS). Но нет никакой гарантии, что эти значения будут иметь какой-то эффект и не отфильтруются по пути.
ИмяИспользование ТипЗначение по умолчанию
fallback_hostssmtpstring list не задана

К этой опции не применяется раскрытие строк. Аргумент должен быть списком имён хостов или IP-адресов, разделённых двоеточиями, также, опционально, включается номер порта, разделитель может быть изменён, как описано в разделе 6.19. Каждый отдельный элемент списка то же самое, что и элемент в установке route_list для manualroute, как описано в разделе 20.5.

Аварийные хосты также могут быть определены в роутерах, которые ассоциированы с обрабатываемыми адресами. Что используется для опции hosts без заданных в транспорте hosts_override и fallback_hosts лишь если адрес не обладает собственным ассоциированным аварийным списком хостов. В отличие от hosts, установка для адреса fallback_hosts не перезадаётся путём hosts_override. Однако, hosts_randomize обращается к спискам аварийных хостов.

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

Как только завершены нормальные доставки, аварийная очередь доставляется путем повторного запуска того же транспорта с новыми списками хостов. Если несколько неудачных адресов имеют одинаковый аварийный хост (и это разрешается опцией max_rcpt), посылается одна копия сообщения.

Разрешение имён хостов в аварийном списке контролируется опцией gethostbyname, как для опции hosts. Аварийные хосты применяются в обоих случаях, когда список хостов прибывает с адресом, и когда он берётся из hosts. Эта опция обеспечивает средство "use a smart host only if delivery fails" (использовать умные хосты, лишь когда неудачна доставка).
ИмяИспользование ТипЗначение по умолчанию
final_timeoutsmtpboolean ложь
p>Это таймаут, который применяется когда ожидается заключительная строка, содержащая лишь ., завершая сообщение. Это значение не должно быть нулём.
ИмяИспользование ТипЗначение по умолчанию
gethostbynamesmtpboolean ложь

Если эта опция истинна, когда используются опции hosts и/или fallback_hosts имена ищутся, используя gethostbyname() (или getipnodebyname(), когда доступна), вместо использования DNS. Разумеется, эта функция, может, фактически, использовать DNS, но она также может консультироваться с другими источниками информации, типа /etc/hosts.
ИмяИспользование ТипЗначение по умолчанию
gnutls_compat_modesmtpboolean Не задано

Эта опция управляет, используется ли GnuTLS в режиме эмуляции в сервере Exim. Это немного уменьшает безопасность, но улучшает взаимодействие с более старыми реализациями TLS.

ИмяИспользование ТипЗначение по умолчанию
helo_datasmtpstring† $primary_hostname

Значение этой опции раскрывается и используется как аргумент для команды EHLO, HELO или LHLO, запускающей исходящую SMTP или LMTP-сессии. В переменные $host и $host_address устанавливаются данные удалённого хоста, и они могут быть использованы для генерирования различных значений для разных серверов. Значение раскрывается после того, как подключение было установлено.
ИмяИспользование ТипЗначение по умолчанию
hostssmtp string list†не задана

Хосты ассоциированы с адресом при помощи роутера типа dnslookup, который ищёт хосты поиском домена адреса в DNS, или путём manualroute, имеющего списки хостов в конфигурации. Однако, почтовые адреса могут быть переданы транспорту smtp при помощи любого роутера, и не все они могут обеспечить ассоциированный список хостов. Опция hosts задаёт список хостов, используемых если обрабатываемый адрес не имеет связанных с ним ассоциированных хостов. Также хосты, определённые в hosts, используются при заданной опции hosts_override, независимо от того, заданы ли собственные хосты адреса или нет.

Вначале строка раскрывается до интерпретации как списка имён хостов или IP-адресов, разделённых двоеточиями, с возможным включением номера порта. Разделитель может быть изменён на что-то иное, чем двоеточие, как описано в разделе 6.19. Каждый отдельный элемент списка то же самое, что и элемент в установке route_list для manualroute, как описано в разделе 20.5. Однако, отметьте, что средство /MX роутера manualroute тут недоступно.

Если раскрытие неудачно, доставка задерживается. Исключая ошибку, вызванную неспособностью завершить поиск, ошибка пишется в тревожный и в главный протоколы. Имена хостов ищутся путём непосредсвенного поиска записи адреса в DNS или путём вызова gethostbyname() (или getipnodebyname(), когда она доступна), в зависимости от установки опции gethostbyname. Когда exim скомпилирован с поддержкой IPv6, если хост, который ищется в DNS, имеет оба адреса, IPv4 и IPv6, используются оба типа адреса.

В процессе доставки хосты пробуются в порядке, подчиняющемся их статусу повтора, если не задана опция hosts_randomize.
ИмяИспользование ТипЗначение по умолчанию
hosts_avoid_esmtpsmtphost list† не задана

Эта опция для использования с неправильными хостами, которые объявляют средства ESMTP (например PIPELINING), а затем не в состоянии осуществить их должным образом. Когда хост совпадает с hosts_avoid_esmtp, exim посылает HELO, а не EHLO в начале сеанса SMTP. Это означает, что не могут использоваться какие бы то ни было ESMTP-средства, типа AUTH, PIPELINING, SIZE и STARTTLS.
ИмяИспользование ТипЗначение по умолчанию
hosts_avoid_esmtpsmtphost list† не задана

Exim не будет использовать расширение конвейерной обработки (PIPELINING) SMTP, передавая данные любому узлу, который упомянут в этом списке, даже если узел заявляет поддержку PIPELINING.
ИмяИспользование ТипЗначение по умолчанию
hosts_avoid_tlssmtp host list† не задана

Exim не пытается начать TLS-сессию, когда происходит доставка на любой хост, совпадающий с этим списком. Для получения дополнительных деталей о TLS, смотрите раздел 38.
ИмяИспользование ТипЗначение по умолчанию
hosts_verify_avoid_tlssmtp host list† *

Exim не пытается начать TLS-сессию для проверки исходящего соединения или доставки в режиме cutthrough любому узлу, соответствующему этому списку. Обратите внимание, что значение по умолчанию не должно использовать TLS.
ИмяИспользование ТипЗначение по умолчанию
hosts_max_trysmtpinteger 5

Эта опция ограничивает число IP-адресов, которые пробуются для любой одной доставки в случае, когда происходят временные ошибки доставки. Раздел 30.4 описывает её использование, и зачем она нужна.
ИмяИспользование ТипЗначение по умолчанию
hosts_max_try_hardlimitsmtpinteger 50

Это дополнительная проверка на максимальное число IP-адресов, которые exim пробует для любой одной доставки. Раздел 30.4 описывает её использование, и зачем она нужна.
ИмяИспользование ТипЗначение по умолчанию
hosts_nopass_tlssmtphost list† не задана

Для любых хостов, которые совпадают с этим списком, соединение, на котором был начата TLS-сессия, не будет передаваться новому процессу доставки для посылки иного сообщения в той же самой сессии. Для объяснений, когда это может быть необходимо, смотрите раздел 38.10.
ИмяИспользование ТипЗначение по умолчанию
hosts_overridesmtpboolean ложь

Если эта опция установлена, и также установлена опция hosts, то любые хосты, присоединённые к адресу, игнорируются, и вместо них всегда используются хосты, заданные в опции hosts. Эта опция не применяется к fallback_hosts.
ИмяИспользование ТипЗначение по умолчанию
hosts_randomizesmtpboolean ложь

Если эта опция установлена, и/или список хостов взят из опции hosts (или из fallback_hosts) или хосты, предоставленные роутером, не были получены из MX-записей (это включает аварийные хосты из роутера) и не были рандомизированы (изменён их порядок, случайным образом) роутером, то порядок опробования хостов рандомизируется каждый раз при запуске транспорта. Перемешивание порядка списка хостов может использоваться для грубого распределения нагрузки.

Когда опция hosts_randomize истинна, список хостов может быть разбит на группы, порядок которых перемешивается отдельно. Это позволяет установить MX-like поведение. Границы между группами обозначены элементом, который просто + в списке хостов. Например:
hosts = host1:host2:host3:+:host4:host5

Порядок трёх первых и порядок последних двух хостов перемешивается для каждого использования, но первые три всегда завершаются до двух последних. Если опция hosts_randomize не установлена, элемент списка + игнорируется.
ИмяИспользование ТипЗначение по умолчанию
hosts_require_authsmtphost list† не задана

Эта опция предоставляет список серверов, для которых должна произойти успешная аутентификация до того, как exim попробует передать сообщение. Если аутентификация неудачна для серверов, которые не в этом списке, exim пробует отослать без аутентификации. Если аутентифкация неудачна для одного из серверов в списке, доставка задерживается. Эта временная ошибка обнаружима в правилах повторов, таким образом, она может быть превращена в жёсткую ошибку, если это требуется. Также смотрите опцию hosts_try_auth и раздел 33 для получения дополнительных деталей об аутентификации.
ИмяИспользование ТипЗначение по умолчанию
hosts_require_tlssmtphost list† не задана

Exim будет настаивать на использовании сессии TLS, когда доставляет к любому хосту, который совпадает с этим списком. Смотрите раздел 38 для получения дополнительных деталей о TLS. Отметьте: эта опция затрагивает лишь исходящую почту. Для применения TLS ко входящим сообщениям, используйте соответствующую ACL.
ИмяИспользование ТипЗначение по умолчанию
hosts_try_authsmtphost list† не задана

Эта опция предоставляет список серверов, которым exim пытается аутентифицироваться, когда соединяется как клиент, если эти сервера объявляли о поддержке аутентификации. Если аутентификация неудачна, exim пробует передать сообщение неаутентифицировавшись. Также смотрите опцию hosts_require_auth и раздел 33 для получения дополнительных деталей об аутентификации.
ИмяИспользование ТипЗначение по умолчанию
hosts_try_prdrsmtphost list† не задана

Эта опция предоставляет список серверов, которым, если они объявляют о поддержке PRDR, Exim попытается согласовать PRDR для сообщений, у которых больше одного адресата.
ИмяИспользование ТипЗначение по умолчанию
interfacesmtpstring list† не задана

Эта опция определяет, какие интерфейсы будут использоваться при создании исходящего SMTP-вызова. Переменные $host и $host_address в процессе раскрытия строки ссылаются на хост, к которому будет производиться подключение. Принудительная неудача раскрытия или результат в виде пустой строки вызывают игнорирование этой опции. Иначе, после раскрытия строка должна быть списком IP-адресов, по умолчанию разделённых двоеточиями, но разделитель может быть изменён обычным способом. Например:
interface = <; 192.168.123.123 ; 3ffe:ffff:836f::fe86:a061

Первый интерфейс корректного типа (IPv4 или IPv6) используется для исходящего соединения. Если ни один из них не явялется интерфейсом правильного типа, опция игнорируется. Если опция interface не установлена или игнорируется, то системные IP-функции выбирают, какой интерфейс использовать, если у хоста их более одного.
ИмяИспользование ТипЗначение по умолчанию
keepalivesmtpboolean истина

Эта опция контролирует установку SO_KEEPALIVE на исходящих сокетах соединения TCP/IP. Когда она установлена, она заставялет ядро периодически исследовать неактивные соединения, путём посыла пакета со старым номером последовательности. Другой конец подключения должен послать подтверждение, если с подключением всё в порядке, или сброс, если подключение было прервано. Причина для этого в том, что оказывается благоприятное воздействие освобождения некоторых типов подключений, которые могут застрять, когда удалённый хост отключается, не разрывая TCP/IP-соединение должным образом. Механизм keepalive может занять несколько часов для обнаружения недостижимых хостов.
ИмяИспользование ТипЗначение по умолчанию
lmtp_ignore_quotasmtpboolean ложь

Если эта опция истинна, когда опция protocol установлена в lmtp, строка IGNOREQUOTA добавляется к команде RCPT при условии, что LMTP-сервер информировал о поддержке IGNOREQUOTA в его ответе на команду LHLO.
ИмяИспользование ТипЗначение по умолчанию
max_rcptsmtpinteger 100

Эта опция ограничивает число команд RCPT, которые послылаются в одной SMTP-транзакции. Каждый установленный адрес обрабатывается независимо, и таким образом может вызывать параллельные подключения к одному и тому же хосту, если это разрешается опцией remote_max_parallel.
ИмяИспользование ТипЗначение по умолчанию
multi_domainsmtpboolean истина

Когда эта опция установлена, транспорт smtp может обрабатывать множество адресов, содержащих смесь различных доменов, если все они ресолвятся в один и тот же список хостов. Выключение опции ограничивает транспорт обработкой лишь одного домена одновременно. Это полезно, если Вы хотите использовать $domain в раскрытии для транспорта, поскольку она установлена лишь, когда один домен вовлечён в удалённую доставку.
ИмяИспользование ТипЗначение по умолчанию
portsmtpstring† смтрите ниже

Эта опция определяет TCP/IP-порт на сервере, с которым соединяется exim. Если значение опции начинается с цифры, оно берётся как номер порта, иначе оно ищется с использованием getservbyname(). Обычно значение по умолчанию smtp, но, если протокол установлен как lmtp, значение по умолчанию lmtp. Если раскрытие неудачно, или если не может быть найден номер порта, доставка задерживается.
ИмяИспользование ТипЗначение по умолчанию
protocolsmtpstring smtp

Если эта опция установлена в lmtp вместо smtp, значение по умолчанию для опции port изменяется на lmtp, и транспорт оперирует протоколом LMTP (RFC 2033) вместо SMTP. Этот протокол иногда используется для локальных доставок в закрытое хранилища сообщений. Exim также поддерживает выполнение LMTP через канал к локальному процессу, смотрите подробности в разделе 28.

Если эта опция установлена в smtps, значение по умолчанию для опции port изменяется на smtps, и транспорт немедленно начинает TLS после соединения, как SSL-on-connect вместо того, чтобы использовать STARTTLS.
ИмяИспользование ТипЗначение по умолчанию
retry_include_ip_addresssmtpboolean истина

Exim обычно включает имя хоста и IP-адрес в ключ, создаваемый для индексирования данных повторов после временной неудачи доставки. Это означает, что когда один или несколько IP-адресов для хоста неудачны, он проверяет их периодически (управляемый правилами повторов), но использование других IP-адресов не затрагивается. Однако, в некоторых окружающих средах dialup-хостов, назначается другой адрес при каждом соединении. В этой ситуации использование IP-адреса как части ключа повторов приводит к нежелательным результатам. Установка этой опции в ложь заставляет exim использовать только имя хоста. Обычно это должно делаться на отдельном smtp-транспорте, устанавливаемом специально для обработки dialup-хостов.
ИмяИспользование ТипЗначение по умолчанию
serialize_hostssmtphost list† не задана

Поскольку exim работает в распределённой манере, если несколько сообщений для одного хоста прибывают одновременно, может произойти более одного подключения к удалённому хосту. Обычно это не проблема, кроме случаев, когда между хостами медленная связь. В этом случае может быть полезным ограничить exim одним соединением одновременно. Это может быть сделано путём установки опции serialize_hosts, чтобы она совпадала с этими хостами. Exim осуществляет упорядочивание посредством базы данных подсказок (hints), в которую вносятся записи каждый раз, когда процесс соединяется с одним из ограниченных хостов. Запись удаляется после завершения соединения. Очевидно, есть возможность для оставления ложных записей, если происходит системный или програмный сбой. Для принятия мер против этого, exim игнорирует любые записи старше шести часов. Если Вы устанавливаете этот вид упорядочивания, Вы также должны принять меры для удаления БД подсказок (hints) при каждой перезагрузке системы. Имена файлов начинаются с misc и хранятся в каталоге spool/db. Могут быть один или два файла, в зависимости от типа используемой DBM. Те же самые файлы используются для упорядочивания ETRN.
ИмяИспользование ТипЗначение по умолчанию
size_additionsmtpinteger 1024

Если удалённый сервер SMTP указывает, что он поддерживает опцию SIZE в команде MAIL, exim использует её для передачи размера сообщения в начале SMTP-транзакции. Этой опцией добавляется значение size_addition к передаваемому значению для учёта заголовков и другого текста, который может быть добавлен в процессе доставки, конфигурационными опциями или в транспортном фильтре. Может возникнуть необходимость увеличить это значение, если к сообщениям добавляется много текста. Альтернативно, если установлено отрицательное значение опции size_addition, оно вообще отключает использование опции SIZE.
ИмяИспользование ТипЗначение по умолчанию
tls_certificatesmtpstring† не задана

Значение этой опции должно быть абсолютным путём к файлу, содержащему клиентский сертификат, для возможного использования при посылке сообщения через зашифрованное соединение. В процессе раскрытия значения $host и $host_address устанавливаются в имя и адрес сервера. Смотрите раздел 38 для получения дополнительных деталей о TLS. Отметьте: эта опция должна быть задана, если вы хотите, чтобы exim мог использовать TLS-сертификаты при отправке сообщений как клиент. Глобальная опция с тем же самым именем задаёт сертификат для exim как сервера. Не предполагается автоматически, что тот же самый сертификат должен использоваться при работе exim как клиента.
ИмяИспользование ТипЗначение по умолчанию
tls_crlsmtpstring† не задана

Эта опция определяет список аннулированных сертификатов. Раскрытое значение должно быть именем файла, содержащего CRL в формате PEM.
ИмяИспользование ТипЗначение по умолчанию
tls_dh_min_bitssmtpinteger 1024

Эта опция доступна, когда пакет собран с SUPPORT_TLS и USE_GNUTLS. Она задает минимальное приемлемое количество бит в Diffie-Hellman, предлагаемом сервером по соображениям безопасности. Опция допустима, но игнорируется при использовании OpenSSL. Значение по умолчанию 1024. Может быть понижено до 512 или повышено на сколько нужно. Увеличение значения может препятствовать способности к взаимодействию TLS с другим сервером и в настоящее время не рекомендуются. Понижение значения разрешит установить сеанс TLS, который не столь уж безопасен. Если Вы действительно не знаете, что делаете, не трогайте.
ИмяИспользование ТипЗначение по умолчанию
tls_privatekeysmtpstring† не задана

Значение этой опции должно быть абсолютным путём к файлу, содержащему частный ключ клиента. Это используется при отправке сообщения через шифрованное соединение, используя клиентский сертификат. В процессе раскрытия значения $host и $host_address устанавливаются в имя и адрес сервера. Если эта опция не задана, раскрытие принудительно неудачно или результат пустая строка, предполагается, что частный ключ находится в том же файле, что и сертификат. Смотрите раздел 38 для получения дополнительных деталей о TLS.
ИмяИспользование ТипЗначение по умолчанию
tls_require_cipherssmtpstring† не задана

Значение этой опции должно быть списком разрешённых наборов шифров для использования при установке исходящего шифрованного соединения. Есть глобальная опция с тем же самым именем для контроля входящих соединений. В процессе раскрытия значения $host и $host_address устанавливаются в имя и адрес сервера. Смотрите раздел 38 для получения дополнительных деталей о TLS, отметьте, что эта опция используется по-разному OpenSSL и GnuTLS (смотрите разделы 38.4 и 38.5).
ИмяИспользование ТипЗначение по умолчанию
tls_snismtpstring не задана

Если эта опция установлена, она устанавливает переменную $tls_sni и заставляет любой сеанс TLS передавать это значение как расширение Server Name Indication удаленной стороне. Это может использоваться удаленной стороной, чтобы выбрать соответствующие частный ключ и сертификат для сеанса. Применяется только с OpenSSL, причем сборка библиотеки должна поддерживать расширения TLS.

ИмяИспользование ТипЗначение по умолчанию
tls_tempfail_tryclearsmtpboolean истина

Когда хост сервера не находится в hosts_require_tls, и есть проблема в установке TLS-сессии, эта опция поределяет, должен ли exim пытаться установить незашифрованное соединение. Если она установлена в ложь, доставка к текущему хосту задержана, если есть другие хосты, пробуются они. Если эта опция установлена в истину, exim пытается доставить нешифрованное сообщение после ответа 4xx на STARTTLS. Также, если STARTTLS принят, но последующие переговоры TLS неудачны, exim закрывает текущее соединение (поскольку оно находится в неизвстном состоянии), открывает новое к тому же самому хосту и пытается осуществить чистую доставку.
ИмяИспользование ТипЗначение по умолчанию
tls_try_verify_hostssmtpсписок хостов не задана

Эта опция задает список узлов, для которых на зашифрованных соединениях проверка сертификата желательна, но не обязана успешно выполняться. Опция tls_verify_certificates тоже должна быть установлена. Обратите внимание на то, что, если узел не находится в этом списке, соединения TLS будут запрещены для хостов с самоподписанными сертификатами, когда задана tls_verify_certificates. Когда проверка успешно выполняется, будет установлена переменная $tls_out_certificate_verified.
ИмяИспользование ТипЗначение по умолчанию
tls_verify_certificatessmtpstring† не задана

Значение этой опции должно быть абсолютным путём к файлу, содержащему разрешённые серверные сертификаты, для использования при установке шифрованного подключения. Альтернативно, если Вы используете OpenSSL, Вы должны установить tls_verify_certificates в имя каталога, содержащего файлы сертификатов. Это не работает с GnuTLS: эта опция должны быть установлена в имя одного файла, если Вы используете GnuTLS. В процессе раскрытия значения $host и $host_address устанавливаются в имя и адрес сервера. Смотрите раздел 38 для получения дополнительных деталей о TLS.

ИмяИспользование ТипЗначение по умолчанию
tls_verify_hostssmtphost list не задана

Эта опция задает список узлов при зашифрованном соединении с которыми должна успешно выполниться проверка сертификата. Опция tls_verify_certificates также должна быть задана. Если она и tls_try_verify_hosts одновременно не заданы, все работает так, как будто выбраны все хосты.

30.4. Как ограничить число хостов, используемых для проверки

Есть две опции, которые связаны с числом хостов, которые проверяются при SMTP-доставке. Это hosts_max_try и hosts_max_try_hardlimit. Опция hosts_max_try ограничивает число хостов, которые пробуются за одну доставку. Однако, несмотря на термин "хост" в её названии, опция, фактически, применяется независимо к каждому IP-адресу. Другими словами, многоадресные хосты обрабатываются как несколько независимых хостов, точно так же, как и для повторов. Многие из больших ISP имеют много MX-записей, часто указывающих на многоадресные хосты. Как результат, список дюжины и более IP-адресов может быть создан в результате маршрутизации одного из этих доменов. Пробовать каждый отдельный адрес в таком длинном списке не самая разумная идея: если несколько адресов вверху списка неудачны, разумно предположить, что существует какая-то проблема, затрагивающая их все. Грубо говоря, значние hosts_max_try задает максимальное число, пробуемое до задержки доставки. Однако, логика не может быть простой. Во-первых, IP-адреса пропускаются, поскольку не пришло их время повтора, а кроме того, адреса, время повтора которых не подошло, также не подсчитываются.

Это означает, что когда некоторые адреса доходят до их времени повтора, может быть опробовано более одного значения hosts_max_try. Причина такого поведения заключается в необходимости гарантировать, что все IP-адреса рассмотрены до таймаута почтового адреса (но смотрите ниже для исключений). Во-вторых, когда достигнут предел hosts_max_try, exim просматривает вниз список хостов чтобы найти, есть ли последующие хосты с иным (более высоким) значением MX. Если они есть, этот хост рассматривается следующим, и текущий IP-адрес используется, но не подсчитывается. Это поведение помогает в случае, когда домен с правилами повтора, которые почти никогда не задерживают никакие хосты, как сейчас будет объяснено.

Рассмотрим случай длинного списка хостов с одним значением MX и нескольких с более высоким значением MX. Если hosts_max_try маленькое (значение по умолчанию 5), вначале будут опробованы лишь несколько хостов вверху списка. С правилами повторов по умолчанию, определяющими увеличивающееся время повтора, в конечном счёте пробуются более высокие MX-хосты, после того, как те, что наверху списка пропущены, поскольку они не достигли их времени повтора. Однако, это обычная практика для помещения короткого фиксированного времени повтора в доменах крупных ISP на том основании, что что их сервера редко лежат очень долго. К сожалению, они как раз те домены, которые имеют тенденцию к ресолвингу в длинные списки хостов. Короткое время повтора значит, что самые маленькие MX-хосты пробуются чаще всего. Попытки могут быть в различном порядке, из-за случайной сортировки, но без специальной проверки MX высшие MX-хосты бы никогда не пробова лись до тех пор, пока все низшие MX-хосты имеют таймаут (который может быть несколько дней), поскольку всегда есть какие-либо низшие MX-хосты с наступившим временем повтора. Со специальной проверкой exim рассматривает по крайней мере один IP-адрес от каждого значения MX при каждой попытке доставки, даже если уже был достигнут предел hosts_max_try.

Вышеупомянутая логика означает, что hosts_max_try не является жёстким пределом, и в частности, обычно exim пробует все адреса до таймаута адреса электронной почты. Когда hosts_max_try была осуществлена, это казалось разумной вещью. Однако, недавно некоторые сумашедшие конфигурации DNS были установлены с сотнями IP-адресов для некоторых доменов. Это, действительно, может занять очень длительное время для таймаута адресов в этих случаях.

Опция hosts_max_try_hardlimit была добавлена для помощи при таких проблемах. Exim никогда не пробует больше этого числа IP-адресов: если он достигает этого предела, и у всех был таймаут, почтовый адрес срывается (генерируется рикошет), даже несмотря на то, что не все возможные IP-адреса были опробованы.

Поиск

 

Найди своих коллег!