Назад | Перейти на главную страницу

постфикс: продолжает добавлять имя домена к отправителю

У меня два сервера с одинаковой настройкой. Первый отправляет письма нормально, другой не отправляет почту. Похоже, проблема в отправителе. Когда я отправляю местную почту, используя:

echo 'Message' | mailx -s 'Test' info@domain.com

в журнале постфиксов будет написано:

from=<root@subdomain.domain.com.domain.com>

пока на первом сервере он правильно читает:

from=<root@subdomain.domain.com>

Я проверил /etc/hostname, /etc/hosts, проверил правильный mydomain и myhostname с участием postconfig. Выход postconf -n точно так же:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
html_directory = no
inet_interfaces = localhost
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
relayhost = [host.relay.com]:587
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt
smtp_use_tls = yes
unknown_local_recipient_reject_code = 550

В mail.cf установлен на все значения по умолчанию, за исключением добавления relayhost и SASL.

Я попытался установить mydomain и myhost явно в main.cf но это, кажется, игнорируется, так же как root: root@subdomain.domain.com в /etc/aliases а затем делать newaliases и перезапуск постфикса ничего не меняет.

Я также пробовал отправить электронное письмо с помощью сценария PHP, без разницы.

В main.cf на сервере 1 точно так же, как на сервере 2, оба работают под одной и той же системой (CentOS 7) и программным обеспечением. Единственная разница в том, что они находятся на разных доменах (например, subdomain.domain1.com и subdomain.domain2.com), так что это может быть возможным, но кажется маловероятным.

Тем не менее, сервер 1 может отлично отправлять почту, используя mailx команду выше, а также из вышеупомянутого сценария PHP (который представляет собой не более чем простой mail() команда.

Что могло привести к тому, что postfix явно игнорировал настройки домена / хоста, но все же выбирал правильные значения, но настаивал на добавлении домена к адресу отправителя?

Ответ DNS.

Первая подсказка была в журналах, где я заметил, что на самом деле именно sendmail, а не postfix, первым упомянул неправильный адрес.

После некоторого поиска в Google я обнаружил, что sendmail при обнаружении ошибок при разрешении домена, очевидно, предлагает комбинацию хост + домен. Проверяя свою конфигурацию DNS, я заметил две вещи: я еще не настраивал обратный DNS, и я не указал Запись AAAA (IPv6) для поддомена, который используется сервером.

После добавления и sendmail, и postfix, где используется правильный адрес, без добавленного домена.