Модуль реализует сервер и клиент протокола
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> Интервал времени между сканированиями директории очереди сообщений. При каждом сканировании загружаются те задания на отправку, которые должны быть выполнены до следующего сканирования.
Максимальное количество заданий на отправку исходящих сообщений находящихся в памяти. При максимальном заполнении очереди загрузка новых заданий будет откладываться. По-умолчанию: 2048.
Максимальный размер оригинального сообщения включающегося в автоматическое информационное сообщение DSN (Delivery Status Notification). По-умолчанию: 1 Mb.
Список имён внешних доменов в которые разрешена пересылка
неаутентифицированным и недоверенным пользователям.
Другими словами, домены для которых мы являемся шлюзами. Имена
доменов могут быть разделены пробелами и/или находиться в
отдельных узлах gateway-for.
XML дерево attempts задаёт интервалы и количество
попыток отправить сообщение если целевой сервер не отвечает или
занят. Узел max задаёт максимальное количество попыток.
Узел notify-attempt устанавливает после какой попытки
отправителю будет отправлено уведомление о том что доставка
сообщения задерживается. Множество узлов delay изменяет
увеличивающийся интервал времени
между попытками, в атрибутах after
узлов delay задаются номера попыток после которых
устанавливаются новые интервалы.
В узле host
рекомендуется указать порты 25 и 587 без SSL и порт 465 с SSL.
Тайм-аут рекомендуется установить 5 min, согласно требованиям
RFC 5321 (п.
4.5.3.2.7.). Как и в других частях конфигурации, возможно указание
нескольких узлов host с разными списками портов,
ключами, сертификатами и ACL.
Узлы submission устанавливают
порты и, опционально, адреса интерфейсов на которых разрешена
аутентификация. Порт должен прослушиваться, т.е. быть настроенным
в XML дереве host. Возможно использование нескольких
узлов submission. Клиенты обычно отправляют сообщения
используя порты 587 или 465 (SSL), эти порты имеет смысл указать в
узлах submission как *:587 и *:465,
порт 25 используется для доставки сообщений между серверами и на
этом порту аутентификация не требуется. По-умолчанию, если не
задан ни один узел submission,
аутентификация разрешена на любом порту любого интерфейса к
которому привязан сервер.
Вне зависимости от того что указано в узлах submission, доверенным клиентам
аутентификация разрешена на любом порту.
Альтернативная строка приветствия отправляемая клиенту при его подключении к серверу.
Максимальное число пересылок (полей Received) для отдельного сообщения после которого оно будет отвергнуто с ошибкой протокола 554 5.4.6. По-умолчанию: 30.
Переключатель, устанавливающий возможность аутентификации с открытым паролем через незашифрованное сетевое соединение. По-умолчанию аутентификация с открытым паролем запрещена.
Имя пула модуля BanIP. Используется для блокировки адресов IP с которых выполняются частые неудачные попытки аутентификации.
Переключатель, запрещающий серверу добавлять поле Received в сообщения от локальных (доверенных) пользователей. По-умолчанию выключено.
Разрешает работу исключительно через зашифрованное
соединение: no - любой клиент может работать
через незашифрованное соединение, all - любой
клиент должен устанавливать зашифрованное соединение,
foreign - только клиенты не являющиеся
доверенными, т.е. не перечисленные в ACL /module-Mail
должны устанавливать зашифрованное соединение. По-умолчанию:
trustedno.
Переключатель, устанавливающий немедленную доставку сообщения после его получения от клиента. Если выключено, сообщение начнёт доставляться только после нормального завершения сеанса SMTP (команды QUIT) или после получения следующей команды MAIL. По-умолчанию включено.
Максимальный размер сообщения. По-умолчанию - не ограничено.
Максимальное количество безуспешных попыток авторизации пользователя после которого соединение будет разорвано. По-умолчанию: 3.
Количество ошибок, таких как неверный синтаксис, неизвестная команда или неизвестный адрес в команде MAIL, после которых соединение будет разорвано. По-умолчанию: 4.
Задержка в миллисекундах (целое положительное число) ответа сервера на ошибочную команду или неуспешную попытку авторизации. По-умолчанию: 2000.
Узел типа ACL задающий серверы пересылающие почту нам. Например, если все входящие сообщения из Интернет пересылаются с MTA провайдера, их адреса следует указать в этом списке.
XML дерево описывает клиентские сетевые подключения к другим
серверам SMTP. Имеют
смысл только узлы threads, threads-max,
timeout. Это единственное место в конфигурации где не
предполагается задание более одного узла host.
Максимальное количество одновременных подключений к серверам
SMTP. По-умолчанию:
16.
Тайм-аут ожидания ответа сервера при подключении. По-умолчанию: 5 min.
Тайм-аут ожидания ответа сервера после команды MAIL. По-умолчанию: 5 min.
Тайм-аут ожидания ответа сервера после команды RCPT. По-умолчанию: 5 min.
Тайм-аут ожидания ответа сервера после команды DATA. По-умолчанию: 2 min.
Тайм-аут ожидания ответа сервера после не последней команды BDAT. По-умолчанию: 3 min.
Тайм-аут ожидания ответа сервера после передачи всего сообщения. По-умолчанию: 10 min.
XML дерево relays позволяет
указать целевые серверы для некоторых доменов. Если сообщение
направлено в один из доменов перечисленных в узлах to дерева relay,
то сервер попытается отправить такое сообщение на серверы
указанные в узлах via того же дерева
relay не обращаясь к службе DNS для
получения записей MX.
Шаблоны имён доменов
сообщения для которых необходимо отправлять на серверы
перечисленные в узлах via.
Множество доменов может быть указано как список шаблонов имён разделённых
пробелом в одном узле to, либо
в нескольких узлах to. Здесь
может быть указано * если все
исходящие сообщения должны доставляться через другой
сервер SMTP.
Имя сервера куда следует отправлять сообщения для
доменов перечисленных в узлах to. После имени сервера может быть
указан символ двоеточия и порт. Если порт не указан,
используется стандартный для SMTP порт 25. Атрибут-переключатель SSL может указывать на то что
необходимо установить безопасное соединение. Допускается
использование множества узлов via, в этом случае при безуспешной
попытке соединиться с сервером в первом узле, будет
произведена попытка соединения со вторым и т.д.
Список целевых серверов и доменов описывающий использование
шифрования при доставке сообщений. Значения узлов destination задают имя домена, если атрибут
type имеет значение domain или опущен, или имя сервера, если
атрибут type имеет значение server. Атрибуты TLS узлов destination устанавливают использование
шифрования: allow - использовать
шифрование если целевой сервер поддерживает его, deny - не использовать шифрование, required - использовать шифрование если
сервер его поддерживает или не доставлять сообщения в противном
случае.
Если целевой сервер поддерживает передачу сообщений частями (команда BDAT), данный узел задаёт максимальный размер первой отправляемой части. Имеет смысл отправлять небольшую первую часть, т.к. после неё сервер может сообщить о возникновении какой-либо проблемы не позволяющей продолжить передачу сообщения.
Если целевой сервер поддерживает передачу сообщений частями (команда BDAT), данный узел задаёт максимальный размер частей следующих за первой.