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

Раннее отклонение почты с помощью Mailman в Postfix

У меня установлен Postfix на одном компьютере, который является единственным конечным адресатом почты для:

  1. Имя хоста машины (mail.example.org) и localhost
  2. Почтальон перечисляет на lists.example.org
  3. Количество виртуальных доменов

Соответствующие настройки в main.cf являются:

myhostname = mail.example.org
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $myhostname
mydestination = localhost, $myorigin
relay_domains = $mydestination, lists.example.org
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

# Virtual domains
virtual_mailbox_base = /var/mail/vhosts
virtual_mailbox_domains = hash:/etc/postfix/virtual_domains
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailboxes
virtual_alias_maps = hash:/etc/postfix/virtual_aliases
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

# mailman configuration
mailman_destination_recipient_limit = 1
transport_maps = hash:/etc/postfix/transport

smtpd_relay_restrictions = permit_mynetworks,
  reject_invalid_hostname,
  reject_unknown_sender_domain,
  reject_unknown_recipient_domain,
  reject_unauth_destination,
  reject_unlisted_recipient,
  reject_rbl_client zen.spamhaus.org,
  permit

В настоящее время почта для lists.example.org направляется в Mailman через следующие transport_maps настройка:

lists.example.org mailman:

Это работает, но это означает, что если электронное письмо отправлено в неизвестный список, сообщение принимается Postfix, а затем возвращается обратно, когда оно обрабатывается Mailman. По нескольким причинам - в частности, чтобы уменьшить обратное рассеяние и как можно раньше отклонять почту - я хочу, чтобы Postfix отклонял почту, как только видит сообщение RCPT TO который соответствует @lists.example.org и не соответствует списку почтальонов.

Я думаю, что смогу достичь этого результата, создав файл, содержащий все псевдонимы списка Mailman, и указав это как relay_recipient_maps в main.cf. Однако я понимаю, что relay_recipient_maps относится к relay_domains, и я не хочу $mydestination адреса, которые будут затронуты.

Итак, мои два связанных вопроса:

  1. Я должен удалить $mydestination из relay_domains, и если я это сделаю, будут ли работать мои существующие псевдонимы?
  2. Если relay_domains установлен на lists.example.org, воля relay_recipient_maps добиться желаемого результата?

В качестве альтернативы, если у Postfix есть способ запросить Mailman и получить ответ перед тем, как принять почту для доставки (возможно, с фильтром до очереди - так я обрабатываю почту для SpamAssassin), это также достигнет того, чего я хочу.

Заранее спасибо. :-)

Мне потребовалось время, чтобы сделать это, но я сделал следующие шаги:

  1. удалять $mydestination из relay_domains.
  2. Добавьте список всех псевдонимов Mailman в хешированный файл с именем /etc/postfixo/relay_recipient_maps.
  3. Добавлено: relay_recipient_maps = hash:/etc/postfix/relay_recipient_maps к main.cf

Электронные письма в несуществующие списки теперь отклоняются как часть начальной SMTP-транзакции до того, как будет проведена какая-либо проверка на спам и до того, как почта будет передана Mailman.