2011-11-29 81 views
9

我写一个shell script发送使用Linux Mailx电子邮件简单邮件正文+附件文件,电子邮件必须包含文件附件消息体发送使用Linux的mailx

目前发送邮件带有附件:

output.txt | mail -s "Daily Monitoring" [email protected] 

我想补充一个消息体。我该如何?

的Linux的mailx:

mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr 
+1

这应该有所有问题的答案:http://stackoverflow.com/questions/17359/how-do-i-send-a-文件-AS-使用-Linux的命令行的电子邮件附连-/ 14213935#14213935 –

回答

20

的常用方法是使用uuencode的附件和echo对身体:

(uuencode output.txt output.txt; echo "Body of text") | mailx -s 'Subject' [email protected] 

对于Solaris和AIX,您可能需要首先把echo声明:

(echo "Body of text"; uuencode output.txt output.txt) | mailx -s 'Subject' [email protected] 
0

Johnsyweb的回答并没有为我工作,但它为我工作与马特:

echo "Message body" | mutt -s "Message subject" -a myfile.txt [email protected] 
2

最好的办法是使用MPack,还将!

MPack,还将-s “主题” -D “./body.txt” “././image.png” 有电子邮件地址

MPack,还将 - 主题 - 身体 - 附件 - 有电子邮件地址

0

你可以试试这个:

(cat ./body.txt)|mailx -s "subject text" -a "attchement file" [email protected] 
1

试试这个工作对我来说:

(echo "Hello XYX" ; uuencode /export/home/TOTAL_SI_COUNT_10042016.csv TOTAL_SI_COUNT_10042016.csv) | mailx -s 'Script test' [email protected] 
0

在RHEL Linux的,我有麻烦我的邮件中电子邮件正文,而不是作为附件。使用od -cx,我发现我的电子邮件正文包含几个/ r。我使用perl脚本去除/ r,并且邮件正确地插入到电子邮件的正文中。

mailx -s "subject text" [email protected] < 'body.txt' 

文本文件body.txt包含char \ r,所以我用perl去掉\ r。

cat body.txt | perl success.pl > body2.txt 
mailx -s "subject text" [email protected] < 'body2.txt' 

这是success.pl

while (<STDIN>) { 
     my $currLine = $_; 
     s?\r??g; 
     print 
    } 
; 
相关问题