Короче ответ.
Если «Хост не найден, попробуйте еще раз». Это может означать, что на вашем сервере есть проблемы с разрешением DNS, или у самого Postfix есть проблемы с разрешением DNS. Но это суть того, что нужно очистить.
Что касается того, как это прояснить, ваш вопрос не содержит достаточно информации о вашей базовой ОС или настройке, чтобы дать краткий ответ. Похоже, вы работаете с Ubuntu/Debian, если вы запускаете sudo service postfix restart
, но какую еще информацию вы можете предоставить?
Более длинный ответ.
Возможно, при подключении к resolv.conf
загадочно исчезает.
На основании ошибки:
Имя хоста или домена не найдено. Ошибка службы имен для name = smtp.gmail.com type = A: Хост не найден, попробуйте еще раз.
Похоже, вы используете SMTP-серверы Gmail для исходящей почты. Не знаю, какая у вас базовая ОС, но, основываясь на этом ответе на форумах Ubuntu, похоже, это проблема с отсутствующим resolv.conf
при перезагрузке; смелый акцент мой
У меня такая же проблема на Ubuntu 14.04 LTS. Когда postfix установлен, он копирует /etc/resolv.conf
в /var/spool/postfix/etc/resolve.conf
.
но по какой-то причине после перезагрузки / перезапуска файл не копируется и вы получаете пустой файл только с заголовком.
Предлагаемое временное решение - скопировать основную ОС resolv.conf
в каталог Postfix:
sudo cp /etc/resolv.conf /var/spool/postfix/etc/resolv.conf
Кажется, это не постоянное исправление, но, по крайней мере, это то, что нужно проверить.
Возможно, связано с настройками inet_protocols
.
Также этот ответ о сбое сервера объясняет аналогичную ситуацию, которая сосредоточена на поддержке IPv6. Уверен, что ваша проблема не связана с IPv6, поскольку ошибка связана с записью «type = A», которая является IPv4, а для IPv6 это будет «type = AAAA». Тем не менее, возможно, стоит поэкспериментировать с настройкой параметра inet_protocols
в вашем конфигурационном файле Postfix. Вот что объясняет официальная документация Postfix:
Когда поддержка IPv4 включена через параметр inet_protocols, Postfix будет искать записи DNS типа A и преобразовывать IP-адреса клиентов IPv4-in-IPv6 (::ffff:1.2.3.4) в исходную форму IPv4 (1.2.3.4).
Последнее необходимо на хостах, которые поддерживают IPV6_V6ONLY (RFC 3493).
Когда поддержка IPv6 включена через параметр inet_protocols, Postfix будет выполнять поиск записей типа AAAA в DNS.
Если включена поддержка как IPv4, так и IPv6, SMTP-клиент Postfix выберет протокол в соответствии с параметром smtp_address_preference. Версии Postfix до 2.8 пытаются подключиться через IPv6, прежде чем использовать IPv4.
Примеры:
- inet_protocols = ipv4
- inet_protocols = all (ПО УМОЛЧАНИЮ)
- inet_protocols = ipv6
- inet_protocols = ipv4, ipv6
Предполагая, что вы находитесь на установке Ubuntu/Debian, откройте конфигурацию здесь:
sudo nano /etc/postfix/main.cf
И найдите или установите значение в строке inet_protocols
чтобы оно было следующим:
inet_protocols = ipv4
Или будь таким:
inet_protocols = all
Затем перезапустите службу Postfix - или весь сервер - и посмотрите, не поможет ли это:
sudo service postfix restart