Я использую postfix helo_restrictions для внесения в черный список доменов, склонных к спаму. Одна из них - это служба, предоставляющая электронную почту людям, которым нужны адреса электронной почты со своими доменами, но не хотят запускать почтовый сервер. Я блокирую эту службу в моем файле check_helo_access:
domainemailsvc.net ОТКЛЮЧИТЬ Пожалуйста, не используйте спам.
Но, к сожалению, несколько человек отправляют законную почту через эту же службу. Должен ли я просто удалить эту строку из check_helo_access и надеяться, что spamassassin выполнит свою работу или есть способ внести в белый список эти конкретные адреса электронной почты или поддомены?
Пример записи в файле журнала для сообщения от моего друга (tom@tomsdomain.com):
Sep 16 11:27:41 myserver postfix/smtpd[19223]: NOQUEUE: reject: RCPT from
bosmailout01.domainemailsvc.net[xx.xx.xx.xx]: 554 5.7.1
<bosmailout01.domainemailsvc.net>: Helo command rejected: No spam please.;
from=<FSD0=AFyHhv=3K=tomsdomain.com=tom@domainemailsvc.net>
to=<lido@myserver.com> proto=ESMTP helo=<bosmailout01.domainemailsvc.net>
Я пробовал добавить в свой файл check_helo_access следующее:
tomsdomain.com OK
tom@domainemailsvc.net OK
... но, похоже, это не работает.
Команда EHLO / HELO SMTP (над которой работает функция check_helo_access) имеет только имя хоста в качестве данных, так что это все, с чем может работать этот конкретный фильтр. Таким образом, вы не можете использовать файл check_helo_access, чтобы разрешить определенным отправителям с имени хоста / домена, который вы блокируете с его помощью.
Если вы хотите получать почту от определенных пользователей в этом домене, разрешите это с помощью check_helo_access.
Затем вы можете использовать, если я помню, sender_access, чтобы разрешить определенные адреса и заблокировать все остальное из этого домена.
Хороший способ подумать об этих проверках в постфиксе состоит в том, что каждая из них работает с определенной частью диалога SMTP, которая, в свою очередь, имеет определенные данные. Домен вступает в игру с HELO. RCPT TO включает местный адрес для доставки. ПОЧТА ОТ включает адрес отправителя. И так далее. Определите, какую часть SMTP-диалога вы хотите отфильтровать, а затем используйте связанную с ним проверку Postfix.
Спасибо @malcolmpdx за то, что указали мне правильное направление. На самом деле sender_access - это то, как я смог это сделать, используя базовое регулярное выражение:
в main.cf:
smtpd_sender_restrictions = check_sender_access pcre:/etc/postfix/sender_access
в sender_access:
/^.*=tom@domainemailsvc.net$/ OK
/^.*domainemailsvc.net$/ REJECT