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

как мне фильтровать и отклонять письма в постфиксе на основе адреса "кому"

Мой сервер CentOS настроен только для исходящей почты. Мне нужен фильтр, чтобы отклонять письма, нацеленные на выбранные места назначения. Например, если я тестирую с

> mail -s "test"  spam@trash.com

Я хочу, чтобы это было отклонено, а не отправлено. Я исследовал

smtpd_recipient_restrictions

flag [и другие], но мне не удалось заставить это работать. Журналы по-прежнему показывают, что письмо было отправлено и удалено из очереди.

В файле main.cf и в smtpd_recipient_restrictions у меня есть:

> check_sender_access hash:/etc/postfix/maps/access_sender

где я например

@trash.com     REJECT

Я хочу добавить, что этот сервер ретранслирует почту другому, но я надеюсь, что смогу отфильтровать нежелательные письма перед ретрансляцией на хост. Пожалуйста помоги. Спасибо

В check_sender_access опция применяется только к адресу «От». Чтобы выполнить фильтрацию на основе адреса «Кому», вы можете сделать это одним из двух способов.


Если вы хотите отфильтровать только адрес «Кому», просто измените check_sender_access к check_recipient_access и сохраните текущий хэш-файл.


Более расширяемый способ фильтрации - по заголовкам. Добавьте в свой main.cf файл:

header_checks = regexp:/etc/postfix/header_checks

Затем создайте следующий файл в /etc/postfix/header_checks:

/^To:.*address1@example.com.*$/ DISCARD blocked
/^To:.*address2@example.com.*$/ DISCARD blocked
/^To:.*address3@example.com.*$/ DISCARD blocked
/^To:.*address4@example.com.*$/ DISCARD blocked

И перезапустите Postfix.

Заметка - DISCARD будет по-прежнему отображаться для отправки сообщения, но сообщение будет отброшено без уведомления. Если вы хотите, чтобы сообщение было возвращено, используйте REJECT.


Справочная документация:

http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions http://www.postfix.org/header_checks.5.html