我正在尝试通过密件抄送发送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 mailx
从mailutils
包中使用,可以使用--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 地址的标头变量。