如何使用mailx密送?

Spa*_*awk 9 email exim mail-command mailx

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

$ mail -V
12.5 6/20/10
Run Code Online (Sandbox Code Playgroud)

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

我可以执行以下操作:

echo -e "body" | mail -s 'subject' -b hidden1@server.com,hidden2@server.com visible@server.com
Run Code Online (Sandbox Code Playgroud)

所有地址都会收到电子邮件,但密件抄送并未隐藏。即在发送给 的电子邮件中hidden1@server.com,我仍然看到:

To: visible@server.com
Bcc: hidden1@server.com,hidden2@server.com
Run Code Online (Sandbox Code Playgroud)

如何mail正确发送密送?

der*_*ert 7

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 other@domain.com email@domain.com
la la la
.
Run Code Online (Sandbox Code Playgroud)

如果可行,您可以将 smtp 选项放在/etc/nail.rc(系统范围)或~/.mailrc(每个用户)中。请注意nail.rc,带有n的 不是错字。


scr*_*rel 5

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

$ echo -e "body text line1\nline2\n\nsent at: $(date)" | mailx --append='FROM:Foghorn Leghorn <fleghorn@sender-domain.com>' --append='BCC:recipient1@acme.com' -s "test subject" -- recipient@acme.com mickey@mouse.com minnie@mouse.com
Run Code Online (Sandbox Code Playgroud)

还要注意上面的命令如何使用 FROM 地址的头变量。