2

我正在尝试使用 unix 的邮件命令发送带有附件和主题行的邮件,但如果两者都有,则会收到错误消息。如果我只有一个主题行,它可以工作,如果我只有一个附件,它可以工作,但不能两者兼而有之。有人知道怎么做吗?

data.out | mail -s "DATA" abc@company.com < text.out

所以这会导致“不明确的输入重定向”

4

3 回答 3

4

您要求将命令的输入发送data.outmail命令中,并要求它从文件中读取text.out;也就是说,至少可以说是因为 shell 不能两者兼得。

如果您想将文本和数据都放入邮件消息中,那么完成此操作的最简单方法是执行以下操作:

(cat text.out; data.out) | mail -s "DATA" abc@company.com

现在如果data.out是一个文件而不是一个命令,那么你可以这样做:

cat text.out data.out | mail -s "DATA" abc@company.com
于 2013-04-22T16:13:26.750 回答
4

根据这篇文章,你可以做你想做的事:

(cat text.out; uuencode data.out data.out) | mail -s "DATA" abc@company.com
于 2013-04-22T16:22:14.863 回答
1

如果它可用,它可以mutt很好地用于此,并且它直接支持附件。我发现mail某些系统上的程序无法正确执行 MIME 编码,即使附件在通过uuencode.

一个使用的例子mutt是:

echo "body text" | mutt -a attachment.txt -s "subject text" -- recipient@domain.com
于 2013-04-22T16:41:50.907 回答