Недавно я тестировал 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" user@example.com
Один сервер показывает, что он пришел с user@example.com, а другой показывает, что он пришел с user@mail.example.com. Я не могу понять это, и я не уверен, где и какие настройки отличаются между этими двумя серверами (с тех пор я также перезагружал их и перезапускал службу 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
uid=1000 from=<operations>
uid=1000 from=operations@mail.contoso.com
Оба они работают на виртуальных машинах Ubuntu 14.04.3, которые были созданы специально для этого и полностью обновлены. Где я могу найти, где настроено это простое имя пользователя? Я проверил / etc / passwd, но там просто написано «операции», там должен быть файл или что-то, что мне где-то не хватает - есть ли у вас идеи?
Я понял. По какой-то причине кажется, что мой / etc / mailname не обрабатывался, хотя он был идентичен другому серверу - и у файла даже была такая же сумма MD5 - конфигурация Postfix не принимала его. Я также заметил, что я использовал mailutils в одной системе (та, которая не работала и на которой был установлен Postfix), а другая использовала bsd-mailx. Я поменял это местами, прежде чем пытаться изменить / etc / mailname, и, похоже, это не имело никакого значения, но, хотя это того стоит, я отмечаю это на всякий случай. В любом случае я изменил свое / etc / mailname на фиктивное значение, например test, затем выполнил перезагрузку sudo postfix и перезапуск postfix службы sudo, а затем переключил его обратно на то, что я предполагал (contoso.com), а затем те же две команды для обновите конфигурацию и сервис, и вот, он работает как задумано. Спасибо всем, что помогло.