如何使用 mailx 密件抄送?

如何使用 mailx 密件抄送?

我正在尝试通过密件抄送发送unix mail( heirloom-mailx)。

$ mail -V
12.5 6/20/10

我的MTA是exim,它通过Gmail SMTP发送。

我可以执行以下命令:

echo -e "body" | mail -s 'subject' -b [email protected],[email protected] [email protected]

所有地址都会收到电子邮件,但不会隐藏密件抄送。即在发送给 的电子邮件中[email protected],我仍然看到:

To: [email protected]
Bcc: [email protected],[email protected]

如何mail正确发送密件抄送?

答案1

heirloom-mailx 对要传递给 的选项进行硬编码/usr/sbin/sendmail,不幸的是,它传递的选项不能使Bcc:标头在 exim 中正常工作。如果不修补并重新编译它,这实际上是无法修复的。 (您需要将其添加-t到参数中,然后要么不传递电子邮件地址列表,要么extract_addresses_remove_arguments = false在您的 exim 配置中进行设置)。

有一个更简单的解决方案:只需通过 SMTP 发送即可。您可以通过设置该smtp选项来完成此操作,并且由于您已经运行了本地 MTA,因此您应该能够将其设置为localhost.你可以这样测试:

$ mail -S smtp=localhost -s 'test message' -b [email protected] [email protected]
la la la
.

如果有效,您可以将 smtp 选项放入/etc/nail.rc(系统范围)或~/.mailrc(每个用户)。请注意nail.rc,用n,不是拼写错误。

答案2

如果GNU mailxmailutils包中使用,可以使用--append添加标头变量的选项来添加 BCC 和 CC,如下所示:

$ echo -e "body text line1\nline2\n\nsent at: $(date)" | mailx --append='FROM:Foghorn Leghorn <[email protected]>' --append='BCC:[email protected]' -s "test subject" -- [email protected] [email protected] [email protected]

另请注意上述命令如何使用 FROM 地址的标头变量。

相关内容