Назад | Перейти на главную страницу

Ссылка на поток / ловушку Postfix или общий обзор?

Postfix MTA состоит из нескольких компонентов / служб, которые работают вместе для выполнения различных этапов доставки и получения почты; к ним относятся демон smtp, процессы сбора и очистки, администратор очередей, служба smtp, pipe / spawn / virtual / rewrite ... и другие (включая возможность настраиваемых компонентов).

Postfix также предоставляет несколько типов перехватчиков, которые позволяют ему интегрироваться с внешним программным обеспечением, таким как серверы политик, фильтры, обработчики отказов, регистраторы и механизмы аутентификации; эти перехватчики могут быть связаны с различными компонентами / этапами процесса доставки и могут обмениваться данными (как минимум) через IPC, сеть, базу данных, несколько типов плоских файлов или предопределенный протокол (например, milter).

Старый и очень ограниченный пример этого показан на этот страница.

Мой вопрос:

Есть ли у кого-нибудь доступ к ресурсу, который описывает эти хуки, компоненты / этапы доставки, с которыми может взаимодействовать ловушка, и поддерживаемые методы связи? Или, что более вероятно, документация по различным компонентам Postfix и поддерживаемым ими хукам / методам?

Например:

Учитывая требование "если первичный MX-сервер получателя совпадает с 'shadysmtpd', проверьте адрес получателя по списку; если есть совпадение, разорвать SMTP-соединение без уведомления".

Моему программному обеспечению необходимо: 1) интегрироваться в соответствующую часть процесса SMTP, 2) использовать какой-либо метод для проверки адреса (сервер карты TCP? Регулярные выражения? Mysql?) И 3) реализовать необходимое действие (завершение соединения) .

Кроме того, для этого, вероятно, будет несколько методов, и еще одним требованием будет найти тот, который лучше всего подходит (например: сетевой сервер может быть быстрее, чем поиск плоских файлов; или, если может быть затронут большой объем почты Эта проверка должна выполняться как можно раньше в процессе отправки почты).

Пример из реальной жизни:

В политика сервер политики (выполняет проверки адресов в соответствии с определенными пользователем правилами) разработан как автономный TCP-сервер, который подключается к Postfix внутри smtpd компонент через директиву 'check_policy_service inet:127.0.0.1:10001' в 'smtpd_client_restrictions'вариант конфигурации.

Это означает, что, когда Postfix впервые получает элемент почты для доставки, он создает TCP-соединение с адресом сервера политики: порт с целью определения, разрешено ли клиенту отправлять почту с этого сервера (помимо любых другие ограничения / методы поиска ограничений определены в этой опции); правильные действия будут предприняты на основе ответа сервера.

Ноты:

1)Страница архитектуры Postfix описывает часть этой информации в ascii art; Я надеюсь на дистиллированный, сжатый справочный материал.

2) Пожалуйста, поправьте меня, если я ошибаюсь на каком-либо уровне; там гора материала, а я всего лишь один человек;)

Спасибо!

Вот очень старая картина потока: http://www.postfix.org/big-picture.gif

http://www.postfix.org/documentation.html Вы ищете документацию в разделах SMTP Relay / access control и Content Inspection (все эти документы).

Я буду рад дать конкретный совет, но документация представляет собой довольно хорошее резюме.

Для примера запроса, который вы указали выше, вы должны реализовать собственный сервер политики. Видеть http://www.postfix.org/SMTPD_POLICY_README.html Например.