Я хочу настроить 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.
Примечание. Если вы не укажете адрес отправителя в транспортной карте, он не сможет получать сообщения о недоставке.