我正在编写一个使用Linux的Mailx
发送电子邮件的shell脚本
,该电子邮件必须包含一个文件附件和一个消息正文。
目前可以发送带有附件的电子邮件:
output.txt | mail -s "Daily Monitoring" james@dell.com
我希望添加一个消息主体,应该怎么做?
Linux Mailx:
mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr
我正在编写一个使用Linux的Mailx
发送电子邮件的shell脚本
,该电子邮件必须包含一个文件附件和一个消息正文。
目前可以发送带有附件的电子邮件:
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
mailx -s "subject text" me@yahoo.com < 'body.txt'
文本文件body.txt中包含字符\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
(echo "Hello XYX" ; uuencode /export/home/TOTAL_SI_COUNT_10042016.csv TOTAL_SI_COUNT_10042016.csv ) | mailx -s 'Script test' abc@xde.com
(cat ./body.txt)|mailx -s "subject text" -a "attchement file" receiver@domain.com