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

Как настроить postfix для отправки только на адреса из белого списка?

Я хочу настроить postfix для отправки почты только на адреса из белого списка. Я пытался использовать smtpd_recipient_restrictions в main.cf вот так:

smtpd_recipient_restrictions =
    reject_unauth_destination
    check_recipient_access hash:/path/to/whitelist

Файл белого списка имеет формат

address@example.com    OK
another@example.com    OK

А затем переведен в хеш с postmap команда.

Тем не менее, ретранслятор отправляет почту на адреса, не внесенные в белый список. Что мне не хватает?

Редактировать: Я отправляю это письмо через sendmail команда, которая явно обходит ограничения smptd. Есть ли способ с этим справиться?

Редактировать 2 / Остальная часть истории: Я потратил довольно много времени, пытаясь отправить sendmail через SMTP, только для того, чтобы обнаружить, что используемая мной команда была не sendmail, а интерфейсом совместимости postfix с sendmail, который имитирует функциональность, но, насколько я могу судить, нельзя указать использовать SMTP.

Однако решение 84104 работало отлично.

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

smtpd_recipient_restrictions =
    check_recipient_access hash:/path/to/whitelist
    reject

в ответ на редактирование:
sendmail(1) использует postdrop(1) не smtpd(8) Один из способов добиться чего-то вроде того, что вы ищете, - это манипулировать transport(5)поведение.

main.cf
    transport_maps = hash:/etc/postfix/transport

transport
    address1@domain.tld :
    address2@domain.tld :
    senderaddress@yourdomain.tld :
    * error: Recipient not whitelisted.

Примечание. Если вы не укажете адрес отправителя в транспортной карте, он не сможет получать сообщения о недоставке.