在 Linux 上通过命令行发送邮件,对于两个不同的服务器上的域,会产生不同的结果

在 Linux 上通过命令行发送邮件,对于两个不同的服务器上的域,会产生不同的结果

我已经将 Postfix 以及所有相应的服务器文件配置为在两个不同的服务器上相同。它们是在不同时间配置的 - 但文件和设置是匹配的,因此/etc/postfix/main.cf/etc/hosts/etc/hostname/etc/resolv.conf等等/etc/mailname都匹配。

不同之处在于,每当我通过命令行使用邮件命令从其中一个单元发送邮件时,我都会从每个单元获得不同的结果,并且我无法弄清楚有什么不同或这个变量从邮件命令中提取的位置。

  • 主机 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。

相关内容