我正在使用 mailx 从脚本发送电子邮件。该脚本每天由 systemd 使用 .service 和 .timer 文件运行。出于测试目的,我从命令行发送。
邮件是通过命令发送的
echo "Test message - you know the drill" | mailx -r "[email protected]" -s "Test Message" [email protected]
(出于隐私考虑,替换了个人数据)
这有效。它通过 postfix 中继到我的网关服务器(也是 postfix),该服务器对传出消息进行签名。然后,该邮件会传送到 GMail,GMail 会验证 SPF 数据和 DKIM 签名,并将邮件传送到我的收件箱。
这很好,除了显示为Ubuntu <[email protected]>
我有其他服务器通过相同的方法发送邮件,并且它们都显示类似。
我想将每个服务器的显示名称更改为更有用的名称。例如,但我正在做的事情是在地址传输到网关服务器时Web Server <[email protected]>
弄乱地址。From
我试过了
echo "Test message - you know the drill" | mailx -r "Web Server [email protected]" -s "Test Message" [email protected]
和
echo "Test message - you know the drill" | mailx -r "Web Server <[email protected]>" -s "Test Message" [email protected]
但在这两种情况下,本地 PostFix 都会以某种方式丢失发件人地址,并且发送到网关服务器的消息from
的地址[email protected]
为smtp.private.example.uk
网关服务器的 FQDN。该邮件被发送到 GMail,但未通过 SPF 和 DKIM 测试,因此被毫不客气地丢弃在垃圾邮件中。(我不知道本地postfix是如何获取网关服务器的名称的)
那么,如何将显示名称添加到传递给 mailx 的参数中,以便它能够在从服务器到服务器的过程中幸存下来并由 GMail 正确显示?
Mailx 版本 3.14 (GNU Mailutils) Ubuntu 22.04
我只main.cf
对 PostFix 进行了一项更改:为网关服务器添加了中继主机地址。