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

Отправка почты из командной строки в Linux дает разные результаты с доменом на двух разных серверах

Я настроил Postfix, а также все соответствующие файлы сервера, чтобы они были одинаковыми на двух разных серверах. Они были настроены в разное время, но файлы и настройки совпадают, поэтому /etc/postfix/main.cf и /etc/hosts, /etc/hostname, /etc/resolv.conf, /etc/mailnameи так далее все совпадают.

Отличие заключается в том, что всякий раз, когда я отправляю почту с одного из них через командную строку с помощью команды mail, я получаю разные результаты от каждого модуля, и я не могу, хоть убей, понять, что отличается или где это переменная извлекается из почтовой команды.

По какой-то причине второй хост добавляет после себя имя хоста. Но главный хост оставляет его пустым, и из-за этого он использует переменную myorigin, которую я установил в Postfix, и работает так, как задумано.

Что-то здесь не совпадает - как я уже сказал, все мои файлы одинаковы, но просто для сравнения я публикую свой postconf -n ниже (он одинаков на всех хостах, поэтому нет смысла вставлять его дважды - у меня есть различал их с помощью Notepad ++).

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

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

Поцарапайте это - я пропустил, что вы сказали / etc / mailname в своем исходном сообщении ... но я полагаю, что перезапуск postfix все еще может быть актуален.


Проверьте / etc / mailname, если у вас есть этот файл в вашей системе. Это повлияет на ваше имя исходящей почты.

root@purgatory:/home/me# cat /etc/hostname
purgatory.corp
root@purgatory:/home/me# cat /etc/mailname
aaaaaapurgatory.corp

postfix/qmgr[33605]: C8FEF2461048: from=<root@aaaaaapurgatory.corp>, size=367, nrcpt=1 (queue active)

Обязательно перезапустите postfix после внесения изменений в / etc / mailname.