Мне нужно заблокировать внешний адрес электронной почты в postfix от отправки мне писем. Это внешний адрес электронной почты стороннего доменного имени, которое я не контролирую.
Причина, по которой мне нужно заблокировать его, заключается в том, что у них что-то неправильно настроено, и я получаю сообщение «Предупреждение, ваше сообщение еще не доставлено» каждую секунду или около того. Я уже связывался с их техподдержкой, но они долго исправляют это, а тем временем мой сервер и мои пользователи страдают.
Я пробовал это делать. В своем mail.cf я добавил:
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access, permit
и в / etc / postfix / sender_access я добавил:
mailfilter@iomart.com REJECT
я бегу
postmap hash:sender_access
и перезапустите postfix, но, похоже, это не помогло.
Я также пробовал:
smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/sender_access
в main.cf, который не работает с этой ошибкой:
postfix/smtpd[2144]: fatal: parameter "smtpd_recipient_restrictions": specify at least one working instance of: check_relay_domains, reject_unauth_destination, reject, defer or defer_if_permit
Пробуем:
smtpd_recipient_restrictions = check_sender_access hash:/etc/postfix/sender_access, permit
дал мне ту же ошибку.
Как отмечает Лауренцио Роеску, smtpd_sender_restrictions
должен работай. Только не думаю, что это было задумано. Отправитель - это человек, отправляющий электронные письма с вашего сервера. Не отправитель с другой стороны.
Итак, вы действительно хотели использовать smtpd_recipient_restrictions = check_sender_access ...
, но, как упоминалось в документации, это отменяется smtpd_relay_restrictions
если вы его используете.
http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions
Необязательные ограничения, которые SMTP-сервер Postfix применяет в контексте клиентской команды RCPT TO, после smtpd_relay_restrictions. См. SMTPD_ACCESS_README, раздел «Отложенная оценка списков ограничения доступа SMTP» для обсуждения контекста и времени оценки.
В версиях Postfix до 2.10 правила для разрешения ретрансляции и блокировки спама были объединены в smtpd_recipient_restrictions, что приводило к конфигурации, подверженной ошибкам. Начиная с Postfix 2.10, правила разрешения ретрансляции предпочтительно реализуются с помощью smtpd_relay_restrictions, так что разрешающая политика блокировки спама в smtpd_recipient_restrictions больше не будет приводить к разрешающей политике ретрансляции почты.
Для обратной совместимости сайты, которые переходят с версий Postfix до 2.10, могут устанавливать для smtpd_relay_restrictions пустое значение и использовать smtpd_recipient_restrictions точно так же, как и раньше.
Вместо этого вы бы сделали:
smtpd_relay_restrictions = ...
...
check_sender_access hash:/etc/postfix/sender_access
...
Таким образом, это должно быть принято во внимание, как и ожидалось. (Символ ... обозначает другие варианты, не забудьте поставить эту галочку в нужное место в списке.)
check_sender_access
должно быть после reject_unauth_destination
или вы можете стать открытым реле.
smtpd_recipient_restrictions = reject_unauth_destination, check_sender_access hash:/etc/postfix/sender_access
Видеть: http://www.postfix.org/postconf.5.html#smtpd_recipient_restrictions
ВАЖНО: Параметр smtpd_relay_restrictions или smtpd_recipient_restrictions должен указывать хотя бы одно из следующих ограничений. В противном случае Postfix откажется получать почту:
отклонить, reject_unauth_destination
отложить, defer_if_permit, defer_unauth_destination
С другой стороны, используя smtpd_sender_restrictions
должен работать, поэтому у вас, вероятно, есть что-то еще перед ним, которое принимает электронное письмо.