postfix: продолжает добавлять имя домена отправителю
У меня есть два сервера с одинаковыми настройками. Первый отправляет почту нормально, другой не будет отправлять почту. Похоже, проблема в отправителе. Когда я отправляю местную почту, используя:
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
и перезапуск postfix ничего не меняет.
Я также пытался отправить письмо с помощью скрипта PHP, без разницы.
main.cf
на сервере 1 точно так же, как на сервере 2, они работают под управлением одной и той же системы (CentOS 7) и программного обеспечения. Единственное отличие состоит в том, что они находятся в разных доменах (например, subdomain.domain1.com и subdomain.domain2.com), так что это может быть возможным, но, похоже, далеко не уместно.
Тем не менее, сервер 1 может отправлять почту отлично, используя mailx
Команда выше, а также из вышеупомянутого скрипта PHP (который является не чем иным, как простым mail()
команда.
Что может привести к тому, что postfix, по-видимому, игнорирует настройки домена / хоста, но выбирает правильные значения, но настаивает на добавлении домена к адресу отправителя?
1 ответ
Ответ DNS.
Первая подсказка была в журналах, где я заметил, что на самом деле именно sendmail, а не postfix, упоминал сначала неправильный адрес.
С некоторой прибылью я обнаружил, что sendmail, при обнаружении ошибок при разрешении домена, по-видимому, предлагает комбинацию host + domain. Проверяя мою конфигурацию DNS, я заметил две вещи: я еще не настроил обратный DNS и не указал запись AAAA (IPv6) для субдомена, который используется сервером.
После добавления, как sendmail, так и postfix, где используется правильный адрес, без добавления домена.