无法使用mailx“非法选项-b”通过BCC发送邮件


0

我正在尝试使用以下命令通过UNIX密件抄送电子邮件。

echo "E-mail message" | mailx -r Senders@Address.com -s "E-mails Subject" ~b BCC_Receiver@Address.com

但是我得到了错误~b... User unknown

如果我使用-b而不是~b,则会出现错误illegal option -- b

如果我使用mail而不是mailx,则会得到完全相同的错误。

但是,当我以以下方式交互式尝试时,它可以工作。

mail -r Senders@Address.com -s Subject Receivers@Address.com
~b BCC_Receiver
E-mail message
.
CC:

我想用一个命令完成这项工作。我怎样才能做到这一点?

输入时uname -a,输出为:s00va9939577 1 7 00CD96834C00


我真的是UNIX的新手,所以我希望我的问题缺少一些重要信息(例如,我使用的是哪个版本-我不知道如何检查,如果需要,请告诉我如何找出来)。请问任何您想知道的事情。我还要求有足够资格的人适当地标记我的问题。先感谢您。
Noob

您可能已经从一本书中看到了此错误,该书带有打印错误或一些错误的UTF代码。该~b指命名用户的主目录b
奥修斯

1
您需要运行命令man mailx以阅读mailx命令的文档。“手册页”将告诉您有效的选项是什么。
格伦·杰克曼(Glenn Jackman)'16

1
运行命令uname -a并将输出发布到您的答案中可能也很有用,这样我们就可以了解正在运行哪种系统。
格伦·杰克曼(Glenn Jackman)'16

1
@Noob,对,对不起。该~b不会在命令行中运行。Shell将其扩展到目录,然后mailx将其视为filename参数。但是,用户不存在,因此外壳程序会拒绝运行该命令。
奥修斯

Answers:


3

-b您的版本似乎不支持在命令行上指定地址的选项。

您的第二个交互式示例之所以有效,是因为mailx将其识别为波浪号转义符。这些必须首先显示在消息正文中的行上,而不是命令行上。它们在规范中,因此得到了更广泛的支持。

只能从输入模式输入以下命令,方法是使用转义符(默认为<tilde>('〜'))开始

[...]

〜b 名称。。。

将名称添加到密件抄送(Bcc)列表中。


0

~b我所知道的任何Unix平台上,都没有用作过mailx的切换。正确的命令应如下所示:

echo -e "email message body" | mail -s 'subject' -b bcc_address_1@server1.com,bcc_address_2@server2.com visible_to_address@server.com

OP确实提到了尝试-b并遇到错误……
Stephen Kitt,2016年

正如@StephenKitt指出的那样,MelBurslan。我已经尝试过了,并且得到了问题中描述的错误。
Noob
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.