Журнал
to=<x.y@example.com>, relay=none, delay=21311, delays=21301/0.04/10/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=localdomain type=MX: Host not found
ОС: FreeBSD
Когда я запускаю следующую команду на своем постфиксном клиенте, она разрешается. mail.p.example.com размещает наш постфиксный сервер, который затем ретранслирует электронные письма в gmail smtp.
host -t MX p.example.com
p.example.com mail is handled by 10 host.p.example.com.
Я сравниваю свою конфигурацию postfix с рабочей конфигурацией на другом хосте, и они такие же.
inet_protocols = ipv4
mynetworks_style = host
inet_interfaces = loopback-only
relayhost = $mydomain
В конфиге есть нечто большее, чем то, что я вставил выше, но ничего не связанное с DNS. smtp_host_lookup не был установлен (значение по умолчанию = dns).
У меня нет файлов resolv.conf в / var / spool / postfix. Был бы признателен за любые указания о том, как postfix разрешает записи DNS.
Ага, теперь проблема очевидна:
relayhost = $mydomain
Вы настроили Postfix для доставки всей почты на $mydomain
, который установлен на localdomain
.
В вашем описании указано, что вы хотели пересылать почту в Gmail, поэтому ваш relayhost
должен быть установлен на соответствующий Имя хоста Google для этой цели, например:
relayhost = [smtp-relay.gmail.com]:25
или
relayhost = [smtp-relay.gmail.com]:587
и ваш smtp_sasl_password_maps
должен указывать на файл, содержащий ваши учетные данные Gmail, если вы используете аутентификацию SMTP.
hostname -f
не разрешал полное доменное имя на узле, вызывающем проблемы. его единственное разрешение на короткое имя. На хостах, где работают клиенты postfix, его разрешение в FQDN
имя хоста уже было установлено в /etc/rc.conf.d/hostname. Мне просто пришлось перезапустить службу имени хоста. угадайте, кто-то вручную установил имя хоста / имя домена, выполнив команды вместо использования инструментов управления конфигурацией.