Как удалить письма, отправленные от определенного локального пользователя на внешние адреса?

Как настроить Postfix для бесшумного удаления / удаления писем, отправленных от одного из моих пользователей на внешний адрес?

Я уже могу отменить все письма на внешние адреса, используя следующие transport_maps

example.com : * discard: 

Однако я хочу применить это правило к одному пользователю только на моем сервере Postfix.

Также письма, адресованные внешним и локальным адресам, должны доставляться только локальным пользователям.

Зачем мне это нужно?

Компания, с которой я работаю, думает, что стажер не должен отправлять письма напрямую клиенту. Таким образом, стажер отправит почту, используя адрес клиентов, и добавит своего супервизора в cc . Затем Postfix shoud только доставляет почту супервизору, чтобы он мог проверять и отправлять почту клиенту без поиска адреса клиентов.

Чтобы сделать то, что нужно OP, нам нужна проверка на транспортном уровне, которая оказывается простой.

  1. Добавьте следующую строку в /etc/postfix/main.cf

     sender_dependent_default_transport_maps = hash:/etc/postfix/sender_transport_maps 
  2. Создайте / etc / postfix / sender_transport_maps, как следует

     user@local.domain discard 
  3. Создать постфиксный файл карты и перезапустить постфикс

     cd /etc/postfix postmap sender_transport_maps service postfix restart 

Этот метод работает, потому что postfix использует только транспортную карту для исходящей почты. В этом случае вместо обычной службы smtp (smtp 🙂 мы используем службу postfix DISCARD.

Sender_dependent_default_transport_maps не работал вообще для меня. Даже с smtpd -vv в master.cf для увеличения отладки не помогло мне сообщить, почему это не сработало (возможно, старая постфиксная версия).

Вместо этого я использовал

 smtpd_sender_restrictions = check_sender_access pcre:/etc/postfix/sender_domains, discard 

с файлом sender_domains, содержащим

 /user_to_be_blocked@domain.com/ DISCARD /@domain.com/ OK 

например, перезапустить постфикс (файлы pcre не должны быть / не могут быть postmap'd)