Интеграция с почтовой системой Sendmail

Для совместной работы программного комплекса Dr.Web для почтовых серверов UNIX и почтовой системы Sendmail, последней требуется поддержка Milter API. Если в установленной у вас почтовой системе Sendmail поддержка данного API отключена, необходимо пересобрать Sendmail с поддержкой библиотеки Milter API. За дополнительной информацией по этой операции обратитесь к соответствующей документации по сборке Sendmail.

Примечание: Чтобы проверить, собран ли имеющийся у вас Sendmail с поддержкой Milter API, выполните следующую команду:

# sendmail -bt -d0 < /dev/null

Если в полученном выводе на консоль фигурирует строчка "milter", значит, имеющийся у вас Sendmail собран с поддержкой Milter API.

Внимание!

Dr.Web MailD полностью совместим с Sendmail 8.12.3 и выше. При работе с более ранними версиями могут возникать проблемы (см. раздел Известные проблемы). Подробные инструкции для подключения в настоящей документации актуальны для Sendmail версии 8.14.0 и выше.

Взаимодействие между почтовой системой Sendmail и Dr.Web MailD осуществляется через Milter API (в качестве компонента Receiver используется модуль drweb-milter) и происходит следующим образом:

Через транспортное соединение, определяемое со стороны модуля drweb-milter транспортным адресом __ADDRESS__, системе Sendmail передаются внутренние команды Milter API и почтовое сообщение. При этом сообщение передается не сразу целиком, а по частям, в зависимости от фазы почтовой сессии (helo, mail from:, rcpt to: и т.д.), поэтому оно сохраняется модулем drweb-milter во временных файлах. Посредством Milter API модуль drweb-milter передает системе Sendmail указания, что делать с данным сообщением.

Milter API является многопоточной библиотекой, т.е. одновременно в процессе может находиться несколько почтовых сессий. В данной схеме взаимодействия Sendmail является клиентом, а drweb-milter – сервером, поэтому в конфигурационном файле почтовой системы sendmail.cf указывается адрес модуля drweb-milter, а система Sendmail для этого соединения выбирает подходящий клиентский адрес;

Через другое транспортное соединение модуль drweb-milter передает модулю drweb-maild команды и ждет ответа.

В приведенной схеме модуль drweb-milter является простым посредником (или преобразователем) между интерфейсом почтовой системы Sendmail и модулем drweb-maild.

Пожалуйста, обратите внимание на особенности работы через Milter в синхронном и асинхронном режимах.

Внимание!

Sendmail и модуль drweb-milter могут быть запущены на разных компьютерах, но модули drweb-milter и drweb-maild должны быть запущены локально.