我可以使用(普通)mailx 重新发送消息吗?

我可以使用(普通)mailx 重新发送消息吗?

假设我收到一条带有附件的消息,我想做的就是将此消息重新发送到另一个地址。是否可以使用纯 mailx 来做到这一点?如果是这样,怎么办?我知道 Heirloom mailx 有一个重新发送命令,但我想知道是否可以使用更原始版本的 mailx 来实现此结果。

答案1

根据传家宝 mailx 的文档:

重发:获取消息列表和用户名,并将每条消息发送给指定用户。 “Resent-From:”和相关标头字段将添加到新消息副本的前面。

为了以简单的方式实现相同的效果,您甚至根本不需要使用 MUA。您可以只使用 shell 和管道将消息直接提交到 MTA/MSP。因此,如果您的消息(标题+正文)位于名为的文件中foo

(
    echo "Resent-From: your.email@address
    cat foo
) | /usr/lib/sendmail [email protected]

请注意,安装系统的 MTA 无需是 Sendmail 即可实现此功能。/usr/lib/sendmail只是事实上的标准 UNIX 邮件提交接口。其他 MTA(例如 Postfix 和 exim)/usr/lib/sendmail也提供。

另请注意,我没有考虑文档中提到的“相关标头字段”。我没有检查我猜他们是Resent-Date这样的。如果您知道它们是什么并且愿意将它们包括在内,则可以将它们添加为echo上面的附加语句。

最后,我要指出的是,即使是传家宝 mailx 也有一个名为“重新发送”(注意大写 R)的附加模式,记录如下:

喜欢重发,但不添加任何标题行。这不是隐藏发件人身份的方法,但对于再次向相同收件人发送消息很有用。

因此,如果您确实想要这样做,那就更简单了,因为您只需按原样提交现有消息:

/usr/lib/sendmail somebody@else < foo

相关内容