Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> документация —> EXIM —> 4.70 —> часть 30

30. Транспорт “smtp”


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

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

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

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

    30.2 Использование переменных $host и $host_address

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

    30.3 Использование $tls_cipher и $tls_peerdn

       В начале запуска транспорта smtp, значения $tls_cipher и $tls_peerdn - значения установленные при получении сообщения. Эти значения используются для опций раскрываемых до создания любых SMTP соединений. Просто, до создания любых соединений, эти две переменные - пусты. Если впоследствии запускается TLS, они устанавливаются в соответствующие значения для исходящего соединения, и эти значения остаются в силе при работе любых аутентификаторов и при раскрытии опции authenticated_sender.


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

       Частные опции транспорта smtp таковы:
    Имя
    Использование
    Тип
    Дефолтовое значение
    address_retry_include_sender smtp boolean истина

       Когда доставка откладывается из-за ответа 4хх на команду RCPT, эта комбинация отправителя и получателя задерживается при последующих обработках очереди. Вы можете задержать получателя без ссылки на отправителя (что и делал exim в более ранних версиях), путём установки address_retry_include_sender в ложь. Однако, это может вызвать проблемы с серверами которые регулярно отвечают 4xx на команды RCPT.

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

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

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

       Когда exim аутентифицирует клиента, или если истинна опция authenticated_sender_force, эта опция устанавливает значение для элемента AUTH= в исходящих командах MAIL, перезадавая любое существующее значение аутентифицированного отправителя. Если раскрытие строки принудительно неудачно, опция игнорируется. Иные ошибки раскрытия вызывают задержку доставки. Если результат раскрытия - пустая строка, она также игнорируется.
       Раскрытие успешно после создания исходящего соединения и запуска TLS, если это требуется. Это означает, что
    $host, $host_address, $tls_cipher и $tls_peerdn устанавливаются в зависимости от конкретного соединения.
       Если SMTP-сессия не аутентифицирована, всё равно происходит раскрытие
    authenticated_sender (и может вызывать задержку доставки, если оно неудачно), но элемент AUTH= в команды MAIL не добавляется, исключая случай, когда истинна опция authenticated_sender_force.
       Эта опция позволяет вам использовать транспорт SMTP в режиме LMTP, для доставки почты Cyrus IMAP, и обеспечения надлежащей локальной части как
    authenticated sender, с помощью установки типа:
    authenticated_sender = $local_part
    

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

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

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    command_timeout smtp time 5m

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    connect_timeout smtp time 5m

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    connection_max_messages smtp integer 500

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    data_timeout smtp time 5m

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

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

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

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

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

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

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    fallback_hosts smtp string list незадана

       К этой опции не применяется раскрытие строк. Аргумент должен быть списком имён хостов, или IP-адресов, разделённых двоеточиями, также, опционально, включается номер порта, разделитель может быть изменён, как описано в разделе 6.19. Каждый отдельный элемент списка - тоже самое, что и элемент в установке route_list для manualroute, как описано в разделе 20.5.
       Аварийные (резервные, чтоли... - прим. lissyara) хосты, также могут быть определены в роутерах, которые ассоциированы с обрабатываемыми адресами. Что используется для опции
    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_timeout smtp time 10m

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

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

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

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

       Эта опция контролирует механизм обмена ключами при использовании GnuTLS в клиенте exim. За дополнительными деталями обратитесь к секции 39.5.

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

       Эта опция контролирует алгоритм MAC при использовании GnuTLS в клиенте exim. За дополнительными деталями обратитесь к секции 39.5.

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

       Эта опция контролирует протоколы при использовании GnuTLS в клиенте exim. За дополнительными деталями обратитесь к секции 39.5.

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

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    helo_data smtp string† $primary_hostname

       Зачение этой опции раскрывается после установки подключения к другому хосту. Результат используется как аргумент для команды EHLO, HELO, или LHLO, запускающей исходящую SMTP или LMTP сессии. Значение по умолчанию:
    $primary_hostname
    

       В процессе раскрытия переменные $host и $host_address устанавливается данные удалённого хоста, и переменные $sending_ip_address и $sending_port устанавливаются в используемые локальный IP адрес и номер порта. Эти переменные могут использоваться для генерации различных значений для различных серверов или различных локальных IP адресов. Например, если вы хотите чтобы строка используемая для helo_data была получена путём поиска в DNS адреса исходйщего интерфейса, вы можете использовать это:
    helo_data = ${lookup dnsdb{ptr=$sending_ip_address}{$value}\
    	{$primary_hostname}
    

       Использование helo_data применяется в обоих случаях - при отправке сообщений и при выполнении обратных вызовов (callout).

    Имя
    Использование
    Тип
    Дефолтовое значение
    hosts smtp 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_esmtp smtp host list† незадана

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    hosts_avoid_pipelining smtp host list† незадана

       Exim не использует расширение SMTP PIPELINING когда производит доставку на любой хост из этого списка, даже если хост объявлял поддержку PIPELINING.

    Имя
    Использование
    Тип
    Дефолтовое значение
    hosts_avoid_tls smtp host list† незадана

       Exim не пытается начать TLS-сессию, когда происходит доставка на любой хост совпадающий с этим списком. Для получения дополнительных деталей о TLS, смотрите раздел 39.

    Имя
    Использование
    Тип
    Дефолтовое значение
    hosts_max_try smtp integer 5

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    hosts_max_try_hardlimit smtp integer 50

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    hosts_nopass_tls smtp host list† незадана

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

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

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

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

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

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    hosts_require_auth smtp host list† незадана

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    hosts_require_tls smtp host list† незадана

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    hosts_try_auth smtp host list† незадана

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

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

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

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

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

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

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

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    max_rcpt smtp integer 100

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

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

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    port smtp string† смтрите ниже

       Эта опция определяет TCP/IP порт на сервере, с котрым соединяется exim.
       Примечание: Не перепутайте её с портом который используется при приёме сообщения,
    $received_port, ранее известной как $interface_port. Имя изменено для минимизации ошибок с исходящим портом. Переменная содержащая исходящий порт - остутствует.
       Если значение опции начинается с цифры, оно берётся как номер порта; иначе, оно ищется с использованием
    getservbyname(). Обычно, дефолтовое значение - smtp, но, если протокол установлен как lmtp, значение по умолчанию - lmtp. Если раскрытие неудачно, или если не может быть найден номер порта, доставка задерживается.

    Имя
    Использование
    Тип
    Дефолтовое значение
    protocol smtp string smtp

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

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

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    serialize_hosts smtp host list† незадана

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

    Имя
    Использование
    Тип
    Дефолтовое значение
    size_addition smtp integer 1024

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       Есть две опции, которые связаны с числом хостов, которые проверяются при SMTP доставке. Это hosts_max_try и hosts_max_try_hardlimit.
       Опция
    hosts_max_try ограничивает число хостов, которые пробуются за за одну доставку. Однако, несмотря на термин хост в её названии, опция, фактически, применяется независимо к каждому IP-адресу. Другими словами, многоадресные (тут применялось другое словечко - multihomed, но думаю, так будет ясней - прим. lissyara) хосты обрабатываются как несколько независимых хостов, точно так же как и для повторов.
       Многие из больших ISP (Internet Service Provider, провайдеров интернета - прим. lissyara) имеют много 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-адресов; если он достигает этого предела, и у всех них был таймаут, почтовый адрес срывается (генерится рикошет - прим. lissyara), даже несмотря на то, что не все возможные IP-адреса были попробованы.


    =============
    translated by lissyara
    verifying by Gerk





  •  

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.0573 секунд
    Из них PHP: 42%; SQL: 58%; Число SQL-запросов: 56 шт.
    Исходный размер: 130047; Сжатая: 20215