Ограничения на отправку почты в Postfix

Задача

На локальном сервере разрешить отправку почты на адреса *@domain.com, на все остальные - запретить.

Проблема

Для отправки по smtp-протоколу можно было бы ограничиться правилом:

smtpd_client_restrictions = check_recipient_access hash:/your-map

Но, так как отправка осуществляется локальными пользователями, выше указанное правило не сработает в случае отправки по nonsmtp-протоколу, которая напрямую кладет письмо в почтовую очередь. Таким образом работают PHP-функция mail() и пакет mailx.

К сожалению, postfix не умеет ограничивать письма по заголовкам «rcpt to» по nonsmtp-протоколу:
It is because smtpd_*_restrictions only apply to the mails received by smtpd daemon through an SMTP transaction. The mails submitted using sendmail command is queued in maildrop queue by postdrop command, which is picked up by pickup and fed to cleanup directly.

You can't restrict recipients for the mails submitted through sendmail command.

Решение (костыль)

В данном случае я отключил транспорт доставки для всех, кроме доменов, указанных в relay_domains.

main.cf

## allow send only to *@domain.com
relay_domains = domain.com
relay_transport = relay
default_transport = error

Ссылки

Комментарии

 
blog/2015/02/10-ограничения_на_отправку_почты_в_postfix.txt · Последние изменения: 2015/02/10 18:12 — Антон Бугреев · []