Два идентичных файла Postfix main.cf, но отправка почты из CLI выглядит по-разному

Два идентичных файла Postfix main.cf, но отправка почты из CLI выглядит по-разному

Недавно я тестировал Postfix и настраивал его как почтовый клиент только для отправки в нашей виртуальной среде. Я экспериментировал с настройками на нескольких виртуальных машинах, пока не заставил его работать, и наконец нашел правильные значения, которые мне следует вводить. Наша конфигурация довольно проста, и я замаскирую или вставлю домен в код ниже с тем, что мы используем.

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = mail.example, localhost.localdomain, localhost
relayhost = smtp-relay.gmail.com
mynetworks = 10.0.0.0/8 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all

Содержимое /etc/hostname приведено ниже.

mail.example.com

Содержимое /etc/hosts приведено ниже.

127.0.0.1   localhost.localdomain localhost
10.x.x.x    mail.example.com    mail

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Содержимое /etc/mailname ниже

example.com

Но по какой-то причине эта конфигурация такая же, как и у другого сервера, идентичного по этим файлам, но когда я отправил почту из командной строки, сделал что-то вроде этого:

echo "testing email" | mail -s "test subject" [email protected]

На одном сервере показано, что он пришел с[email protected], а другой показывает, что это произошло из[email protected].Я не могу понять этого, и я не уверен, где и какие настройки различаются между этими двумя серверами (с тех пор я также перезагружал их и перезапускал службу Postfix несколько раз).

Похоже, что это системная переменная или опрашивается другой файл конфигурации. Мне очень любопытно, и я хотел бы понять, что здесь происходит, и любая информация будет очень полезна. Спасибо!

Обновление 1: Включая сравнение mail.log и postconf -n

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
inet_protocols = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = mail.example.com, localhost.localdomain, localhost
myhostname = mail.example.com
mynetworks = 10.0.0.0/8 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost = smtp-relay.gmail.com
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

Сравнение Mail.log

  • Почта01:uid=1000 from=<operations>
  • Mail02:uid=1000 [email protected]
  • Почта на mail01 отправляется с пустым именем пользователя (операции), поэтому postfix добавляет myorigin, делая[email protected].
  • Почта на mail02, похоже, отправляется с полным адресом электронной почты в поле «От», поэтому Postfix не добавляет myorigin.

Они оба работают на виртуальных машинах Ubuntu 14.04.3, которые были созданы заново для этого и полностью обновлены. Где мне искать, где это голое имя пользователя настроено? Я проверил /etc/passwd, но там просто написано "operations", должно быть, есть файл или что-то, что я где-то упустил - есть ли у вас какие-нибудь идеи?

решение1

Я разобрался. По какой-то причине, похоже, мой /etc/mailname не обрабатывался, хотя он был идентичен другому серверу - и файл даже имел ту же MD5sum - конфигурация Postfix его не принимала. Я также заметил, что использовал mailutils на одной системе (той, которая не работала и на которой Postfix был установлен после этого), а другая использовала bsd-mailx. Я поменял это перед попыткой изменить /etc/mailname, и, похоже, это не имело значения, но на всякий случай я отмечаю это. В любом случае, я изменил свой /etc/mailname на фиктивное значение, например test, затем выполнил sudo postfix reload и sudo service postfix restart, а затем снова переключил его на то, что я хотел (contoso.com), а затем выполнил те же две команды для обновления конфигурации и службы, и, о чудо, все заработало, как и предполагалось. Спасибо всем, кто помог.

Связанный контент