Постфикс и отправка входящих писем в скрипт вместо отправки - PullRequest
1 голос
/ 01 декабря 2010

Я хочу использовать Postfix, чтобы принимать входящие электронные письма и отправлять их во внешний скрипт Python, который анализирует их и добавляет в базу данных.

Я прочитал, что это можно сделать с помощью файла политики.

Мой первый вопрос: что должен вернуть файл политики, чтобы Postfix удалил сообщение электронной почты из очереди с сообщением об успехе отправителю.

Мой второй вопрос: могу ли я использовать файл политики для проверки подлинности SMTP, отправленной клиентом? Если нет, есть ли способ заставить его использовать внешний скрипт для проверки логина?

Спасибо!

  • Christian

1 Ответ

1 голос
/ 01 декабря 2010

Если вам все равно нужна SMTP-аутентификация и вы просто хотите, чтобы скрипт действовал как MDA , я думаю, вы можете сделать это, просто установив mailbox_command = /path/to/my/script в /etc/postfix/main.cf и настроив схему аутентификации.Если у вас также работает dovecot, я могу рекомендовать postfix пройти аутентификацию через dovecot, что очень настраивается, когда дело доходит до аутентификации SASL.

Обновление

Поскольку вы будетеимея незашифрованные пароли, передаваемые по сети (при условии, что эта услуга доступна из сети), я рекомендую разрешить аутентификацию только по зашифрованной линии.Конфигурация, которую я собираюсь показать, будет по-прежнему принимать почту, для которой сервер является пунктом назначения без аутентификации.Насколько я знаю, такое поведение предписано RFC для SMTP-серверов, которые доступны из Интернета.

Объявить аутентификацию SASL только по зашифрованным соединениям

smtpd_tls_auth_only=yes

Не требовать всехразговаривать с вами по зашифрованному каналу

smtpd_tls_security_level=may

шаблон SASL

smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $mydomain

Для кого принимать почту.Это работает слева направо, до тех пор, пока не встретится разрешающее или запрещающее правило.Резервное поведение будет разрешать.

smtpd_recipient_restrictions = permit_auth_destination, reject_plaintext_session, permit_sasl_authenticated, reject
  • permit_auth_destination, поскольку первое правило будет гарантировать, что клиенты могут доставлять почту пользователям, за которые я чувствую ответственность без проверки подлинности.Клиенты могут выбрать, использовать ли TLS или нет.
  • reject_plaintext_session, поскольку второе правило гарантирует, что все остальные правила, расположенные ниже по линии, могут предполагать зашифрованный канал.
  • permit_sasl_authenticated является self-explanatory
  • reject, поскольку последнее правило в основном меняет политику по умолчанию на "deny".

Если вы не хотите принимать почту без аутентификации SMTP, вы можете захотетьотбросьте первое правило smtpd_recipient_restrictions.

Не показана конфигурация сертификата SSL и как узнать о нем постфикс (последний из которых прост).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...