我正在尝试使用 unix 的邮件命令发送带有附件和主题行的邮件,但如果两者都有,则会收到错误消息。如果我只有一个主题行,它可以工作,如果我只有一个附件,它可以工作,但不能两者兼而有之。有人知道怎么做吗?
data.out | mail -s "DATA" abc@company.com < text.out
所以这会导致“不明确的输入重定向”
您要求将命令的输入发送data.out
到mail
命令中,并要求它从文件中读取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
根据这篇文章,你可以做你想做的事:
(cat text.out; uuencode data.out data.out) | mail -s "DATA" abc@company.com
如果它可用,它可以mutt
很好地用于此,并且它直接支持附件。我发现mail
某些系统上的程序无法正确执行 MIME 编码,即使附件在通过uuencode
.
一个使用的例子mutt
是:
echo "body text" | mutt -a attachment.txt -s "subject text" -- recipient@domain.com