Мой внешний SMTP блокирует некоторые электронные письма с ошибкой 450 4.7.1 Client host rejected: cannot find your hostname
, который мы проследили до reject_unknown_client_hostname
. Как это часто бывает, имя хоста, в которое разрешается обратный адрес, само по себе не имеет записи DNS. Шансы на то, чтобы это исправить, невелики, но нам нужно получить их электронную почту.
Итак, можем ли мы настроить какое-то исключение, чтобы обойти это правило просто для них?
Вы можете разрешить конкретному клиенту обходить smtpd_client_restrictions
:
smtpd_client_restrictions =
check_client_access hash:/etc/postfix/client_access,
reject_invalid_hostname
Сначала будет выполнено указанное действие в client_access
, и если он не соответствует ни одному правилу, перечисленному в нем, отклонить отправителей, у которых нет действительного домена.
Синтаксис client_access будет следующим:
1.2.3.4 OK
bad.domain REJECT
После настройки этого файла выполните следующую команду, чтобы сгенерировать индексированную версию этого файла (db):
postmap /etc/postifx/client_access
Перезагрузите postfix, и все будет в порядке.
Больше документов таблицы доступа
РЕДАКТИРОВАТЬ: Если по какой-то причине вам нужно отладить это, вы можете попробовать включить отладку в smtpd в зависимости от того, кто подключается к вашей службе. редактировать /etc/postfix/master.cf
, найдите службу smtpd и добавьте строку, подобную этой:
smtp inet n - - - - smtpd
-o debug_peer_level=10 -o debug_peer_list=1.2.3.4
Это позволит отладить только для пира 1.2.3.4. Это должно дать вам представление о том, что происходит, когда клиент 1.2.3.4 подключается к сервису smtp для отправки вам электронной почты, просмотрев журнал вашей почты.