<module-SMTP>

Модуль реализует сервер и клиент протокола SMTP, а также управляет очередью исходящих (отправляющихся на другие серверы) сообщений.

<module-SMTP>
  <queue>
    <log-level>N</log-level>
    <scan-queue-dir>timeout</scan-queue-dir>
    <mem-queue-length-max>N</mem-queue-length-max>
    <original-size-max>N</original-size-max>
    <gateway-for>domain1 domain2 ...</gateway-for>
    ...
    <attempts>
      <max>N</max>
      <notify-attempt>N</notify-attempt>
      <delay after="1">time</delay>
      <delay after="N">time</delay>
      ...
    </attempts>
  </queue>
  <server>
    <log-level>N</log-level>
    <host>...</host>
    ...
    <submission>hostname:port|IPv4:port|*:port|[IPv6]:port|[::]:port|socket_name</submission>
    ...
    <greeting>string</greeting>
    <hops-max>N</hops-max>
    <plain-auth>Yes|No</plain-auth>
    <banip-pool>string</banip-pool>
    <hide-received>Yes|No</hide-received>
    <SSL-only>No|All|Foreign</SSL-only>
    <instant-delivery>Yes|No</instant-delivery>
    <message-max>bytes</message-max>
    <auth-fail-max>N</auth-fail-max>
    <bad-cmd-max>N</bad-cmd-max>
    <bad-cmd-delay>N</bad-cmd-delay>
    <relays>...</relays>
  </server>
  <client>
    <log-level>N</log-level>
    <host>...</host>
    <connections-max>N</connections-max>
    <timeout-greeting>timeout</timeout-greeting>
    <timeout-MAIL>timeout</timeout-MAIL>
    <timeout-RCPT>timeout</timeout-RCPT>
    <timeout-DATA>timeout</timeout-DATA>
    <timeout-DATA-transit>timeout</timeout-DATA-transit>
    <timeout-DATA-end>timeout</timeout-DATA-end>
    <relays>
      <relay>
        <to>domain1pattern domain2 ...</to>
        <to>domain3</to>
        ...
        <via SSL="0|1">server1[:port]</via>
        ...
      </relay>
      ...
    </relays>
    <using-TLS>
      <destination type="domain|server"
                   TLS="allow|deny|required">name</destination>
      ...
    </using-TLS>
    <first-chunk-max>bytes</first-chunk-max>
    <chunk-max>bytes</chunk-max>
  </client>
</module-SMTP>        
queue/scan-queue-dir

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

queue/mem-queue-length-max

Максимальное количество заданий на отправку исходящих сообщений находящихся в памяти. При максимальном заполнении очереди загрузка новых заданий будет откладываться. По-умолчанию: 2048.

queue/original-size-max

Максимальный размер оригинального сообщения включающегося в автоматическое информационное сообщение DSN (Delivery Status Notification). По-умолчанию: 1 Mb.

queue/gateway-for

Список имён внешних доменов в которые разрешена пересылка неаутентифицированным и недоверенным пользователям. Другими словами, домены для которых мы являемся шлюзами. Имена доменов могут быть разделены пробелами и/или находиться в отдельных узлах gateway-for.

queue/attempts

XML дерево attempts задаёт интервалы и количество попыток отправить сообщение если целевой сервер не отвечает или занят. Узел max задаёт максимальное количество попыток. Узел notify-attempt устанавливает после какой попытки отправителю будет отправлено уведомление о том что доставка сообщения задерживается. Множество узлов delay изменяет увеличивающийся интервал времени между попытками, в атрибутах after узлов delay задаются номера попыток после которых устанавливаются новые интервалы.

server/host

В узле host рекомендуется указать порты 25 и 587 без SSL и порт 465 с SSL. Тайм-аут рекомендуется установить 5 min, согласно требованиям RFC 5321 (п. 4.5.3.2.7.). Как и в других частях конфигурации, возможно указание нескольких узлов host с разными списками портов, ключами, сертификатами и ACL.

server/submission

Узлы submission устанавливают порты и, опционально, адреса интерфейсов на которых разрешена аутентификация. Порт должен прослушиваться, т.е. быть настроенным в XML дереве host. Возможно использование нескольких узлов submission. Клиенты обычно отправляют сообщения используя порты 587 или 465 (SSL), эти порты имеет смысл указать в узлах submission как *:587 и *:465, порт 25 используется для доставки сообщений между серверами и на этом порту аутентификация не требуется. По-умолчанию, если не задан ни один узел submission, аутентификация разрешена на любом порту любого интерфейса к которому привязан сервер.

Примечание

Вне зависимости от того что указано в узлах submission, доверенным клиентам аутентификация разрешена на любом порту.

server/greeting

Альтернативная строка приветствия отправляемая клиенту при его подключении к серверу.

server/hops-max

Максимальное число пересылок (полей Received) для отдельного сообщения после которого оно будет отвергнуто с ошибкой протокола 554 5.4.6. По-умолчанию: 30.

server/plain-auth

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

server/banip-pool

Имя пула модуля BanIP. Используется для блокировки адресов IP с которых выполняются частые неудачные попытки аутентификации.

server/hide-received

Переключатель, запрещающий серверу добавлять поле Received в сообщения от локальных (доверенных) пользователей. По-умолчанию выключено.

server/SSL-only

Разрешает работу исключительно через зашифрованное соединение: no - любой клиент может работать через незашифрованное соединение, all - любой клиент должен устанавливать зашифрованное соединение, foreign - только клиенты не являющиеся доверенными, т.е. не перечисленные в ACL module-Mail/trusted должны устанавливать зашифрованное соединение. По-умолчанию: no.

server/instant-delivery

Переключатель, устанавливающий немедленную доставку сообщения после его получения от клиента. Если выключено, сообщение начнёт доставляться только после нормального завершения сеанса SMTP (команды QUIT) или после получения следующей команды MAIL. По-умолчанию включено.

server/message-max

Максимальный размер сообщения. По-умолчанию - не ограничено.

server/auth-fail-max

Максимальное количество безуспешных попыток авторизации пользователя после которого соединение будет разорвано. По-умолчанию: 3.

server/bad-cmd-max

Количество ошибок, таких как неверный синтаксис, неизвестная команда или неизвестный адрес в команде MAIL, после которых соединение будет разорвано. По-умолчанию: 4.

server/bad-cmd-delay

Задержка в миллисекундах (целое положительное число) ответа сервера на ошибочную команду или неуспешную попытку авторизации. По-умолчанию: 2000.

server/relays

Узел типа ACL задающий серверы пересылающие почту нам. Например, если все входящие сообщения из Интернет пересылаются с MTA провайдера, их адреса следует указать в этом списке.

client/host

XML дерево описывает клиентские сетевые подключения к другим серверам SMTP. Имеют смысл только узлы threads, threads-max, timeout. Это единственное место в конфигурации где не предполагается задание более одного узла host.

client/connections-max

Максимальное количество одновременных подключений к серверам SMTP. По-умолчанию: 16.

client/timeout-greeting

Тайм-аут ожидания ответа сервера при подключении. По-умолчанию: 5 min.

client/timeout-MAIL

Тайм-аут ожидания ответа сервера после команды MAIL. По-умолчанию: 5 min.

client/timeout-RCPT

Тайм-аут ожидания ответа сервера после команды RCPT. По-умолчанию: 5 min.

client/timeout-DATA

Тайм-аут ожидания ответа сервера после команды DATA. По-умолчанию: 2 min.

client/timeout-DATA-transit

Тайм-аут ожидания ответа сервера после не последней команды BDAT. По-умолчанию: 3 min.

client/timeout-DATA-end

Тайм-аут ожидания ответа сервера после передачи всего сообщения. По-умолчанию: 10 min.

client/relays

XML дерево relays позволяет указать целевые серверы для некоторых доменов. Если сообщение направлено в один из доменов перечисленных в узлах to дерева relay, то сервер попытается отправить такое сообщение на серверы указанные в узлах via того же дерева relay не обращаясь к службе DNS для получения записей MX.

relay/to

Шаблоны имён доменов сообщения для которых необходимо отправлять на серверы перечисленные в узлах via. Множество доменов может быть указано как список шаблонов имён разделённых пробелом в одном узле to, либо в нескольких узлах to. Здесь может быть указано * если все исходящие сообщения должны доставляться через другой сервер SMTP.

relay/via

Имя сервера куда следует отправлять сообщения для доменов перечисленных в узлах to. После имени сервера может быть указан символ двоеточия и порт. Если порт не указан, используется стандартный для SMTP порт 25. Атрибут-переключатель SSL может указывать на то что необходимо установить безопасное соединение. Допускается использование множества узлов via, в этом случае при безуспешной попытке соединиться с сервером в первом узле, будет произведена попытка соединения со вторым и т.д.

client/using-TLS

Список целевых серверов и доменов описывающий использование шифрования при доставке сообщений. Значения узлов destination задают имя домена, если атрибут type имеет значение domain или опущен, или имя сервера, если атрибут type имеет значение server. Атрибуты TLS узлов destination устанавливают использование шифрования: allow - использовать шифрование если целевой сервер поддерживает его, deny - не использовать шифрование, required - использовать шифрование если сервер его поддерживает или не доставлять сообщения в противном случае.

client/first-chunk-max

Если целевой сервер поддерживает передачу сообщений частями (команда BDAT), данный узел задаёт максимальный размер первой отправляемой части. Имеет смысл отправлять небольшую первую часть, т.к. после неё сервер может сообщить о возникновении какой-либо проблемы не позволяющей продолжить передачу сообщения.

client/chunk-max

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