题
这个问题在这里已经有一个答案:
- 如何使用Linux上的邮件命令附加文件? [复制 13个答案
我正在写 shell script
使用Linux发送电子邮件 Mailx
, ,电子邮件必须包含一个 文件附件 和 邮件正文.
目前发送带有附件的电子邮件:
output.txt | mail -s "Daily Monitoring" james@dell.com
我想添加一个消息主体。我应该怎么?
Linux Mailx:
mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr
解决方案
通常的方法是使用 uuencode
用于附件和 echo
为身体:
(uuencode output.txt output.txt; echo "Body of text") | mailx -s 'Subject' user@domain.com
对于Solaris和Aix,您可能需要将 echo
语句首先:
(echo "Body of text"; uuencode output.txt output.txt) | mailx -s 'Subject' user@domain.com
其他提示
最好的方法是使用mpack!
mpack -s“主题” -d./body.txt“ ././image.png” Mailadress
mpack-主题 - 身体 - 附件 - 邮递员
尝试一下,它对我有用:
(echo "Hello XYX" ; uuencode /export/home/TOTAL_SI_COUNT_10042016.csv TOTAL_SI_COUNT_10042016.csv ) | mailx -s 'Script test' abc@xde.com
在Rhel Linux上,我很难在电子邮件正文中获得信息,而不是作为附件。使用OD -CX,我发现电子邮件的正文包含几个 /r。我使用Perl脚本剥离 /R,并将消息正确插入电子邮件正文中。
mailx -s "subject text" me@yahoo.com < 'body.txt'
文本文件body.txt包含char r,所以我用perl剥离了 r。
cat body.txt | perl success.pl > body2.txt
mailx -s "subject text" me@yahoo.com < 'body2.txt'
这就是成功
while (<STDIN>) {
my $currLine = $_;
s?\r??g;
print
}
;
Johnsyweb的答案对我不起作用,但对我有用:Mutt:
echo "Message body" | mutt -s "Message subject" -a myfile.txt recipient@domain.com
您可以尝试一下:
(cat ./body.txt)|mailx -s "subject text" -a "attchement file" receiver@domain.com
不隶属于 StackOverflow