我正在编写一个shell script
使用 Linux 发送电子邮件Mailx
的电子邮件,电子邮件必须包含文件附件和消息正文。
目前正在发送带有附件的电子邮件:
output.txt | mail -s "Daily Monitoring" james@dell.com
我想添加一个消息正文。我该怎么办?
Linux 邮件:
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" 邮件地址
mpack - 主题 - 正文 - 附件 - 邮件地址
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
在 RHEL Linux 上,我无法在电子邮件正文而不是附件中获取我的消息。使用 od -cx,我发现我的电子邮件正文包含几个 /r。我使用 perl 脚本去除 /r,消息被正确插入到电子邮件正文中。
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'
这是成功.pl
while (<STDIN>) {
my $currLine = $_;
s?\r??g;
print
}
;
你可以试试这个:
(cat ./body.txt)|mailx -s "subject text" -a "attchement file" receiver@domain.com