Postfix: Client host rejected: cannot find your hostname

Автор: | 06/05/2013

postfixПочтовый сервер FreeBSD.org начал возвращать письма с такой ошибкой:

Reporting-MTA: dns; akira.domain.org.ua

X-Postfix-Sender: rfc822; ***@domain.kiev.ua

Action: failed

Remote-MTA: dns; mx1.freebsd.org
Diagnostic-Code: smtp; 450 4.7.1 Client host rejected: cannot find your hostname, [77.***.***.40]

Аналогичные записи в логе /var/log/maillog:

postfix/smtp[47728]: 92B2651088: to=<*****@freebsd.org>, relay=mx1.freebsd.org[8.8.178.115]:25, delay=293780, delays=293778/0.01/1.1/0.21, dsn=4.7.1, status=deferred (host mx1.freebsd.org[8.8.178.115] said: 450 4.7.1 Client host rejected: cannot find your hostname, [77.***.***.40] (in reply to RCPT TO command))

Как правило, ошибка Client host rejected: cannot find your hostname означает несовпадение записи MX домена и PTR-записи для IP -адреса сервера.

Проверим:

$ dig domain.kiev.ua MX | grep mx
domain.kiev.ua.        600     IN      MX      30 mx0.mail5.freehost.com.ua.
domain.kiev.ua.        600     IN      MX      20 mx0.domain.org.ua.
mx0.domain.org.ua.     3600    IN      A       77.***.***.40
mx0.mail5.freehost.com.ua. 383  IN      A       194.0.200.222

И запись про IP:

$ dig -x 77.***.***.40

;; QUESTION SECTION:
;40.106.120.77.in-addr.arpa.    IN      PTR

;; ANSWER SECTION:
40.106.120.77.in-addr.arpa. 86400 IN    PTR     akira.domain.org.ua.

Другой способ:

$ host 77.***.***.40
40.106.120.77.in-addr.arpa domain name pointer akira.domain.org.ua.

Разница сразу видна – akira.domain.org.ua и mx0.domain.org.ua..

Теперь достаточно сменить PTR-запись у владельца IP-адреса (в данном примере – у Дата-центра, в котором расположен сервер), подождать обновления DNS – и проблема решена.