在 Linux 上從命令列發送郵件對於兩台不同伺服器上的網域給出不同的結果

在 Linux 上從命令列發送郵件對於兩台不同伺服器上的網域給出不同的結果

我已將 Postfix 以及所有相應的伺服器檔案配置為在兩個不同的伺服器上相同。這些是在不同時間配置的 - 但檔案和設定是匹配的,因此/etc/postfix/main.cf/etc/hosts/etc/hostname/etc/resolv.conf等都/etc/mailname匹配。

不同的部分是,每當我使用 mail 命令通過命令行從其中一個發送郵件時 - 我從每個單元得到不同的結果,我一生都無法弄清楚有什麼不同或在哪裡正在從郵件命令中提取變量。

  • 主機 1(來自 /var/log/mail.log):uid=1000 from=<operations>

  • 主機2(來自/var/log/mail.log):uid=1000 [email protected]

無論出於何種原因,第二個主機都會在後面附加主機名稱。但頂級主機將其保留為裸露狀態,因此它使用我在 Postfix 中設置的 myorigin 變量,並且按預期工作。

這裡有些東西不匹配- 就像我說的,我的所有文件都是相同的,但只是為了比較,我在下面發布了我的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

答案1

我想到了。無論出於何種原因,似乎我的 /etc/mailname 沒有得到處理,即使它與其他伺服器相同 - 並且該檔案甚至具有相同的 MD5sum - Postfix 配置沒有接受它。我還注意到我在一個系統上使用 mailutils(該系統無法正常工作並在事後安裝了 Postfix),而另一個系統則使用 bsd-mailx。我在嘗試更改 /etc/mailname 之前交換了這個,它似乎沒有什麼區別,但為了以防萬一,我注意到它是值得的。無論如何,我將/etc/mailname 更改為類似test 的虛假值,然後執行sudo postfix reload 和sudo service postfix restart ,然後將其切換回我想要的值(contoso.com),然後執行相同的兩個命令刷新配置和服務,你瞧,它正在按預期工作。感謝所有提供幫助的人。

答案2

從頭開始 - 我錯過了你在原來的帖子中所說的 /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=<[email protected]>, size=367, nrcpt=1 (queue active)

編輯 /etc/mailname 後請務必重新啟動 postfix。

相關內容