Я пытаюсь настроить почтовый сервер, используя postfix и dovecot. Все работает нормально, и я могу подключиться по IMAP с помощью Mozilla Thunderbird. Но когда я пытаюсь отправить электронные письма с помощью сервера smtp, я сталкиваюсь со следующим не могу найти ваше имя хоста ошибка из журналов, и отправка почты не выполняется:
mail postfix/smtpd[15822]: NOQUEUE: reject: RCPT from unknown[xxx.xxx.xxx.xxx]: 550 5.7.1 Client host rejected: cannot find your hostname, [xxx.xxx.xxx.xxx]; from=<me@domain.com> to=<me@gmail.com> proto=ESMTP helo=<[192.168.10.47]>
xxx.xxx.xxx.xxx
это IP-адрес клиента (не сервера). Я немного погуглил не могу найти ваше имя хоста ошибка, и, похоже, она связана с записью PTR DNS. Но запись PTR DNS моего сервера выглядит правильно настроенной:
Вот результат dig -x yyy.yyy.yyy.yyy
, где yyy.yyy.yyy.yyy
это IP-адрес моего сервера:
;; QUESTION SECTION:
;yyy.yyy.yyy.yyy.in-addr.arpa. IN PTR
;; ANSWER SECTION:
yyy.yyy.yyy.yyy.in-addr.arpa. 86400 IN PTR mail.domain.com.
В моем /etc/postfix/main.cf
, Об ограничениях smtp есть следующие строки:
## Customized smtpd paramters
smtpd_banner = $myhostname ESMTP
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,
reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname,
reject_unknown_helo_hostname, permit
smtpd_recipient_restrictions = reject_unknown_client_hostname,
reject_unknown_sender_domain, reject_unknown_recipient_domain,
reject_unauth_pipelining, permit_mynetworks,
permit_sasl_authenticated, reject_unauth_destination,
reject_invalid_hostname, reject_non_fqdn_sender
smtpd_sender_restrictions = reject_unknown_sender_domain,
reject_sender_login_mismatch
smtpd_sender_login_maps = $virtual_mailbox_maps
И в моем /etc/postfix/master.cf
, У меня только по умолчанию, без ограничений:
smtp inet n - - - - smtpd
Я также могу добавить, что я использую аутентификацию sasl с несамозаверяющим сертификатом, и что мой сервер является Debian Wheezy, но я не думаю, что это имеет отношение к моей проблеме.
Есть какие-нибудь подсказки о том, как решить мою проблему или где искать?
Вы настроили свой сервер на отклонение недопустимых и неизвестных имен хостов, используемых в HELO.
smtpd_helo_restrictions = permit_mynetworks,
reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname,
reject_unknown_helo_hostname, permit
(Также эта строка заканчивается на permit
; вам не хватает какой-то части конфигурации.)
Если вы хотите иметь возможность отправлять электронную почту от клиентов, которые не выдают правильный HELO с допустимым именем хоста, удалите reject_invalid_helo_hostname
и reject_unknown_helo_hostname
.