使用Linux Mailx发送简单的邮件正文+文件附件

时间:2011-11-29 17:23:58

标签: shell mailx

我正在撰写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

6 个答案:

答案 0 :(得分:24)

通常的方法是使用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

答案 1 :(得分:3)

最好的方法是使用mpack!

mpack -s"主题" -d" ./ body.txt" " ././ image.png"有电子邮件地址

mpack - subject - body - attachment - mailadress

答案 2 :(得分:1)

试试这个对我有用:

(echo "Hello XYX" ; uuencode /export/home/TOTAL_SI_COUNT_10042016.csv TOTAL_SI_COUNT_10042016.csv ) | mailx -s 'Script test' abc@xde.com

答案 3 :(得分:0)

Johnsyweb的答案对我没有用,但是对我来说,它适用于Mutt:

echo "Message body" | mutt -s "Message subject" -a myfile.txt recipient@domain.com

答案 4 :(得分:0)

你可以试试这个:

(cat ./body.txt)|mailx -s "subject text" -a "attchement file" receiver@domain.com

答案 5 :(得分:0)

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

mailx -s "subject text" me@yahoo.com < 'body.txt'

文本文件body.txt包含char \ r \ n,所以我使用perl来剥离\ r。

cat body.txt | perl success.pl > body2.txt
mailx -s "subject text" me@yahoo.com < 'body2.txt'

这是success.pl

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