У меня проблема с Postfix (на Centos 6.5), в результате чего я должен явно указать myhostname в main.cf, иначе локальная почта будет ретранслироваться через хост-ретранслятор.
Согласно Postfix main.cf: «По умолчанию используется полное доменное имя из gethostname ()».
Мой файл / etc / hosts:
127.0.0.1 localhost
10.0.0.3 server123.company.org server123
имя хоста и имя хоста -f возвращаются правильно.
Как я могу решить, почему это не работает?
Решено ... проблема заключалась в неправильной записи в / etc / sysconfig / network для HOSTNAME. Было установлено короткое имя вместо полного доменного имени. Исправлена запись в этом файле и перезапущена сетевая служба.
Удалось проверить, что gethostname () получает полное имя хоста с помощью следующей тестовой программы:
#include <stdio.h>
#include <unistd.h>
#include <limits.h>
int main(int argc, char *argv[])
{
char hostname[HOST_NAME_MAX];
if (gethostname(hostname, sizeof hostname) == 0)
puts(hostname);
else
perror("gethostname");
return 0;
}