这个问题在这里已经有一个答案:

我正在写 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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top