В секции [Sender] собраны настройки компонента Sender, отвечающего за отправку сообщений. Этой секции конфигурационного файла нет в дистрибутиве программного комплекса, предназначенного для работы с почтовой системой CommuniGate Pro.
UseSecureHash = {логический}
|
Предписание добавлять к письмам, отправляемым назад в почтовую систему, заголовка-«пометки» X-DrWeb-Hash.
Используется, когда Dr.Web MailD вынужден при модификации писем выполнять процедуру отвергания старого письма с добавлением во входную очередь почтовой системы модифицированной версии письма. В этом случае письмо, поступившее на вход в Dr.Web MailD из почтовой системы и уже имеющее этот заголовок, сразу же, без проверки, отправляется на доставку, а в противном случае оно поступает на проверку. Прохождение повторных проверок может породить зацикливание письма и отказ от его доставки.
|
Параметр должен использоваться только при работе с почтовыми системами Postfix, Qmail, Sendmail и Zmailer:
•При работе Dr.Web MailD с почтовой системой Postfix значение Yes должно быть указано, только если взаимодействие с почтовой системой производится по протоколу Milter (используется модуль drweb-milter). В этом случае все сообщения, сформированные модулем drweb-sender, обрабатываются модулем drweb-milter. Значение по умолчанию: No
•При работе Dr.Web MailD с почтовой системой Qmail или Sendmail значение Yes должно быть указано, если для получения и отправки сообщений используется одна и та же почтовая система. Значение по умолчанию: Yes
•При работе Dr.Web MailD с почтовой системой Zmailer значение Yes должно быть указано, только если drweb-zmailer используется на стадии маршрутизации (например, запускается из process.cf). В этом случае все сообщения, сформированные модулем drweb-sender, обрабатываются модулем drweb-zmailer. Значение по умолчанию: No
|
SecureHash = {текст}
|
Параметр задает содержимое заголовка X-DrWeb-Hash.
Значением параметра может быть произвольная строка, рекомендуемая длина строки – не менее 10 символов. Для повышения безопасности настоятельно рекомендуется изменить значение по умолчанию, указанное для данного параметра.
При работе Dr.Web MailD с почтовой системой Zmailer значение параметра должно совпадать со значением параметра --hash, задаваемого при запуске модуля drweb-zmailer в случае, если эта почтовая система используется на этапе маршрутизации.
|
Значение по умолчанию:
SecureHash = !!!---------___EDIT_THIS___!!!
|
StalledProcessingInterval = {время}
|
Определяет периодичность, с которой компонент Sender проверяет базу данных сообщений на предмет "потерянных" писем с целью их доставки получателю.
"Потерянные" письма – это сообщения, которые были получены и обработаны, но по каким-либо причинам не переданы компоненту Sender на отправку. Такая ситуация может случиться при возникновении проблем с сетью или питанием. При нахождении таких писем компонент Sender ставит их в очередь на отправку.
Также этот тайм-аут используется для повторных запросов к источникам данных из Lookup, используемых в параметре Router (см. ниже), если источники данных оказались недоступны и письмо вследствие этого не может быть доставленным (не может быть получен целевой адрес доставки).
|
Значение по умолчанию:
StalledProcessingInterval = 10m
|
SendingIntervals = {время}
|
Промежутки времени между попытками отправить письма и уведомления, которые не удалось отправить с первой попытки (например, проблемы с сетью, ошибки на принимающей стороне и т.п.)
При работе Dr.Web для почтовых серверов UNIX в синхронном режиме, Sender производит попытку отправки сразу после получения обработанного письма вне зависимости от установленого значения первого интервала. В случае неудачи Sender перейдет к отложенной отправке спустя SendingIntervals. Если в качестве первого значения параметра используется 0, он будет проигнорирован, поскольку попытка отправки письма уже была.
Если Dr.Web для почтовых серверов UNIX работает в асинхронном режиме, попытка отправки письма всегда будет осуществляться согласно интервалам, заданым в значении данного параметра.
Обратите внимание, что все генерируемые уведомления и DSN отправляются только в асинхронном режиме, вне зависимости от того, в каком режиме работает Dr.Web MailD. Поэтому отложенная отправка уведомлений и DSN будет всегда стартовать по времени с первого интервала, указанного в списке SendingIntervals. Поэтому желательно первым интервалом в списке всегда иметь 0s.
Если первое значение в SendingIntervals не равно 0, то в асинхронном режиме будет иметься гарантированная задержка отправки обработанных сообщений и уведомлений, равная первому элементу списка.
Если параметр имеет только значение 0s, попытки отложенной отправки осуществляться не будут, а письмо будет сразу перемещено в каталог /out/failed. Также см. замечание в конце раздела.
|
Значение по умолчанию:
SendingIntervals = 0s, 30s, 60s, 10m, 30m, 2h, 8h, 1d, 1d
|
Method = {SMTP | LMTP | pipe}
|
Метод, используемый компонентом Sender для доставки сообщения.
•SMTP - сообщения отправляются по протоколу SMTP; •LMTP - сообщения отправляются по протоколу LMTP; •pipe - сообщения отправляются по программному каналу (pipe) внешней почтовой программе. |
Значение по умолчанию:
зависит от дистрибутива.
|
MailerName = {SMTP | Sendmail |
Postfix | CommuniGate |
Qmail | Exim |
Zmailer | Courier}
|
Имя почтовой системы, работающей совместно с Dr.Web для почтовых серверов UNIX.
Данный параметр используется, если Method = pipe.
|
Значение по умолчанию:
зависит от дистрибутива.
|
Address = {адрес}
|
Адрес MTA, на который компонентом Sender будут отправляться сообщения после проверки.
Если Method = pipe, то в данном параметре следует указать полный путь к внешней почтовой системе, получающей сообщения. При других значениях параметра Method в параметре Address задается сокет, через который отправляются сообщения.
При работе программного комплекса в режиме SMTP/LMTP-прокси кроме стандартных типов адресов, можно также использовать тип mx:HOSTNAME, где HOSTNAME - имя хоста. В случае использования такого типа программный комплекс получает для HOSTNAME все MX-записи и отправляет сообщение в соответствии с ними.
Если указать только префикс mx: без указания имени хоста, то программный комплекс получит и использует для отправки письма MX-записи домена получателя письма (из поля TO конверта письма).
|
Можно указать несколько адресов для отправки сообщений. Значения разделяются запятой (",").
Значение параметра не может быть пустым даже при использовании маршрутизации (см. параметр Router).
Пример:
Address = inet:25@10.4.0.90, inet:25@10.4.0.91, inet:25@10.4.0.92
В данном примере, в случае если MTA, находящийся по адресу 10.4.0.90, перестанет отвечать, Sender предпримет попытку отправить письмо на адрес 10.4.0.91. В случае неудачной передачи, письмо будет передано на адрес 10.4.0.92.
При большом количестве адресов рекомендуется увеличить значения параметров MaxTimeoutForThreadActivity и IpcTimeout в секции [General] до величины не менее 5 минут, чтобы Sender успел переключиться к последнему адресу в случае отсутствия ответа от предыдущих адресов.
|
Значение по умолчанию:
зависит от дистрибутива.
|
PipeTimeout = {время}
|
Максимальный промежуток времени на получение ответа при использовании pipe.
|
Значение по умолчанию:
PipeTimeout = 2m
|
Options = {текст}
|
Дополнительные параметры для метода pipe. Они передаются почтовой системе, которая получает сообщения.
|
Значение по умолчанию:
Options =
|
InPoolOptions = {настройки пула}
|
Настройки пула потоков для обработки перед очередью.
Обратите внимание, что это параметр устарел и более не используется (изменение его значения не влияет на работу Dr.Web MailD)!
|
Значение по умолчанию:
InPoolOptions = auto
|
OutPoolOptions = {настройки пула}
|
Настройки пула потоков для обработки после очереди.
|
Значение по умолчанию:
OutPoolOptions = auto
|
Следующие параметры данной секции конфигурационного файла задаются только при работе программного комплекса с почтовыми системами Exim и Postfix, а также при работе в режиме SMTP/LMTP-прокси:
HeloCmdTimeout = {время}
|
Максимальный промежуток времени на выполнение команд HELO/EHLO
|
Значение по умолчанию:
HeloCmdTimeout = 5m
|
MailFromCmdTimeout = {время}
|
Максимальный промежуток времени на выполнение команды MAIL.
|
Значение по умолчанию:
MailFromCmdTimeout = 5m
|
RcptToCmdTimeout = {время}
|
Максимальный промежуток времени на выполнение команды RCPT.
|
Значение по умолчанию:
RcptToCmdTimeout = 5m
|
DataCmdTimeout = {время}
|
Максимальный промежуток времени на выполнение команд DATA/BDAT.
|
Значение по умолчанию:
DataCmdTimeout = 2m
|
DataBlockTimeout = {время}
|
Максимальный промежуток времени на отправку тела сообщения.
|
Значение по умолчанию:
DataBlockTimeout = 3m
|
EndOfDataTimeout = {время}
|
Максимальный промежуток времени на получение подтверждения о доставке сообщения.
|
Значение по умолчанию:
EndOfDataTimeout = 10m
|
OtherCmdsTimeout = {время}
|
Максимальный промежуток времени на выполнение остальных команд по протоколу SMTP/LMTP.
|
Значение по умолчанию:
OtherCmdsTimeout = 2m
|
SendDSN = {логический}
|
Разрешает или запрещает отправку DSN в случае возникновения проблем с доставкой письма.
Пожалуйста, обратите внимание, что если Dr.Web MailD работает через Sender не в режиме SMTP/LMTP-прокси, а в режиме интеграции с MTA (Exim, Postfix, Zmailer), нужно быть осторожным при использовании DNS, поскольку в этом случае при задержке отправки письма DSN может быть сгенерирована как Dr.Web MailD (после всех неудачных попыток отправки), так и самим MTA (после истечения тайм-аута ожидания обработанного письма от Dr.Web MailD). В этом случае отправитель письма может получить при возникновении проблем сразу два DSN.
DSN отправляется на доставку в компонент Sender в случае, когда невозможно передать его непосредственно в MTA (к примеру, если в адресе отправителя указано неполное доменное имя) и код возврата невозможно вернуть компоненту Receiver.
|
Значение по умолчанию:
SendDSN = No
|
Router = {Lookup}
|
Правила маршрутизации сообщений в зависимости от доменов, которым принадлежат получатели, используемые при работе Dr.Web MailD в режиме SMTP/LMTP-прокси.
Сообщения, адресованные получателям, находящимся в разных доменах, могут быть отправлены на доставку по разным маршрутам. В данном параметре указывается, на какие адреса следует отправлять письма в различные домены.
|
Значения параметра задаются в формате DOMAIN ADDRESS, где:
•DOMAIN - подстрока, которая должна целиком входить в конверты получателей (конверт имеет вид <user@host>). Осуществляется поиск частичного соответствия, не чувствительный к регистру. Например, подстрока @localhost будет входить в конверты <test@LocalHost> и <yy@localhost.localdomain>, а подстрока @localhost> – только в конверт <test@LocalHost>. •ADDRESS - адреса, на которые будут отправляться сообщения, если подстрока DOMAIN будет целиком найдена в конверте. Формат ADDRESS аналогичен формату параметра Address в данного конфигурационного файла. Возможно указание нескольких адресов с разделением их символом "|", тогда письмо будет доставлено по первому адресу, с которым удалось установить соединение. Обратите внимание, что порядок указания адресов в списке существенен, поскольку ищется первое подходящее совпадение.
Если для письма, подлежащего отправке, не нашлось соответствия DOMAIN в приведенном списке, для его отправки будет использоваться адрес, указанный в параметре Address. Поэтому значение параметра Address не должно быть пустым (см. замечание ниже, в подразделе Использование Router).
Обратите внимание, что если источники данных, используемые в Lookup, оказались недоступны и письмо вследствие этого не может быть доставленным (не может быть получен целевой адрес отправки), такое письмо окажется "потерянным", и компонент Sender будет совершать повторные попытки его отправки через период StalledProcessingInterval.
|
Пример:
Router = @main.server.com> mx:main.server.com|inet:25@backup.server.com
В этом случае письма, получатели которых принадлежат домену main.server.com, будут отправлены на адреса, указанные в MX-записи для main.server.com. Если доставить письма не удастся, то система попытается отправить письмо по адресу backup.server.com на порт 25.
Обратите внимание, что значение параметра – Lookup.
|
Значение по умолчанию:
Router =
|
Использование Router
Параметр Router позволяет использовать Lookup (за исключением типов regex, wildcard и rfile).
Пример:
Router = "mysql:select address from senders where user='$u'"
С помощью этого запроса проверяется, присутствует ли локальная часть адреса получателя в базе данных MySQL в столбце user таблицы senders. Если присутствует, то письмо высылается на адрес, указанный в найденной строке в столбце address.
Пример:
Router = "ldap:///description?sub?(cn='$d')", domain1.com inet:25@example.com | inet:1025@example.com | inet:2025@example.com, mail.com mx: | inet:25@mail.backup, domain2.com mx:mail.ru | inet:25@mail.backup, "file:/path/to/routers.list"
В данном случае письма будут отправляться на доставку следующим образом:
1)Сначала будет производиться поиск доменного имени отправителя через LDAP (используется атрибут cn, в случае обнаружения параметры перенаправления берутся из поля description). 2)Письма, получатели которых имеют домен domain1.com, будут отправлены по адресу example.com на порт 25. В случае неудачи, будет предпринята попытка передать письма на тот же адрес на порт 1025, а затем на порт 2025. 3)Письма, отправленные адресованные домену mail.com, будут пересылаться на адреса, соответствующие MX-записи mail.com. 4)Письма, адресованные домену domain2.com, будут перенаправляться на адреса, указанные для MX-записи mail.ru, либо на порт 25 сервера mail.backup. 5)Если адрес отправителя не совпал ни с одним из описанных ранее в правилах, соответствие будет проверено в файле /path/to/routers.list. Обратите внимание, что каждому конкретному домену в соответствие ставится один адрес, поэтому конструкции подобного вида недопустимы:
Router = domain, domain2 25@host
Перед использованием Lookup в параметре Router рекомендуется проверить его корректность (используйте утилиту drweb-lookup), а также убедиться в доступности используемого источника данных. Если в качестве значения параметра Router используется Lookup с режимом обработки ошибок OnError=exception (определенном либо в настройках используемого источника данных или переопределенном локально, в значении Lookup), то, в случае если будет невозможно получить нужный маршрут из источника данных, эта ситуация будет обработана как ошибка в компоненте Sender, запись о чем будет зафиксирована в журнале. При этом в синхронном режиме компонент Receiver всегда возвращает отправителю письма код SMTP 451 (Requested action aborted: local error in processing), а обработанное письмо будет удалено из всех очередей. В асинхронном режиме письмо будет помечено как "потерянное" и Sender будет пытаться его отправлять с периодичностью, указанной в параметре StalledProcessingInterval.
В случае если письмо не удалось отослать ни на один из найденных адресов, то в зависимости от кода ответа SMTP, который вернет последний MTA:
•Sender перейдет к отложенной отправке спустя интервал, указанный в значении параметра SendingIntervals. При отложенной отправке также действуют правила определения целевого MTA, указанные в параметре Router. Если отложенная отправка закончится неудачей, то (если это разрешено в параметре SendDSN) компонент Notifier сгенерирует DSN. Если для домена отправителя, указанного в конверте недоставленного письма, не заданы специальные маршруты (в параметре Router или в Правилаx обработки почты), то данный DSN будет отправлен на адрес, указанный в значении параметра Address. •если последний MTA ответит кодом ошибки SMTP 5**, то DSN будет сгенерирована сразу, а письмо будет удалено из out-очередей. Схема отправки DSN в этом случае аналогична вышеописанному. Если DSN не может быть доставлен, то он будет удален спустя интервал, указанный в значении параметра SendingIntervals. При определении разных маршрутов для одного и того же домена в Правилаx обработки почты и в параметре Router, будут действовать только маршруты, определенные в Правилах обработки почты.
![warning](warning.png)
|
Даже при настройке маршрутизации всей почты с помощью параметра Router значение параметра Address не должно быть пустым, поскольку в противном случае при старте компонет Sender выведет сообщение об ошибку и завершит свою работу. Это связано с тем, что адрес, указанный в значении параметра Address, используется, если для получателя не будет найдено соответствия в таблице маршрутизации или в Правилах обработки почты.
После того, как компонент Sender исчерпает все попытки отложенной отправки письма, "потерянное" письмо остается в подкаталоге /out/failed каталога хранилища писем навечно, и в дальнейшем его требуется либо явно отправить при помощи утилиты drweb-inject, либо удалить средствами ОС.
|
|