Shell 从UNIX命令发送带有附件和HTML消息正文的电子邮件
这听起来可能是一个愚蠢的问题,但我已经尝试并搜索了很多选项,没有一个符合我的要求 我试图使用bash脚本从unix命令行发送一封带有报告的邮件,我使用mailx服务成功地发送了带有正文和附件的邮件,但正文未格式化,不美观Shell 从UNIX命令发送带有附件和HTML消息正文的电子邮件,shell,email,unix,sendmail,mailx,Shell,Email,Unix,Sendmail,Mailx,这听起来可能是一个愚蠢的问题,但我已经尝试并搜索了很多选项,没有一个符合我的要求 我试图使用bash脚本从unix命令行发送一封带有报告的邮件,我使用mailx服务成功地发送了带有正文和附件的邮件,但正文未格式化,不美观 (echo "$(cat /tmp/report_summary.html)";uuencode /tmp/report_details.xls report_details.xls) |/usr/bin/mailx -s "Report for XYZ" $MAIL_GRP
(echo "$(cat /tmp/report_summary.html)";uuencode /tmp/report_details.xls report_details.xls) |/usr/bin/mailx -s "Report for XYZ" $MAIL_GRP
我尝试了sendmail选项,它完美地格式化了邮件正文,但没有附件选项
(
echo "From: From@xyz.vom";
echo "To: Address@xyz.vom";
echo "Subject: Test Message 1 2 3";
echo "Content-Type: text/html";
echo "MIME-Version: 1.0";
echo "Content-Disposition: inline";
echo "<HTML><BODY><PRE>";
cat /tmp/report_details.html;
echo "</PRE></BODY></HTML>";
) | /usr/sbin/sendmail -t
(
“回声”来自:From@xyz.vom";
“回音”至:Address@xyz.vom";
回显“主题:测试消息1 2 3”;
echo“内容类型:text/html”;
echo“MIME版本:1.0”;
echo“内容配置:内联”;
回声“;
cat/tmp/report_details.html;
回声“;
)|/usr/sbin/sendmail-t
我没有mutt选项,但我尝试了sendmail、mailx和mail服务,但没有一个能够帮助我满足我明显简单的需求
Unix操作系统:Solaris 10 8/07 s10s_u4wos_12b SPARC
注意:不要将其标记为与现有答案重复,因为他们可以选择发送附件或html正文或带有普通正文的附件。使用sendmail(低级命令)发送“单个MIME部分”非常简单
您的脚本存在严重错误:
-i
sendmail命令行选项字符集
(除非使用US-ASCII)#!/bin/sh
(
# Email headers and html header body in body
cat - <<END
From: From@xyz.vom
To: Address@xyz.vom
Subject: Test Message 1 2 3
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline
<HTML><BODY><PRE>
END
# file to be "HTMLized"
cat /tmp/report_details.html
# html footer in body
cat - << END_FOOTER
</PRE></BODY></HTML>
END_FOOTER
)
| /usr/sbin/sendmail -t -- 'Address@xyz.vom'
#/垃圾箱/垃圾箱
(
#正文中的电子邮件标题和html标题正文
cat-IIRC,在标题和内容之间需要有一个空行,行的结尾应该是CRLF(尽管这可能并不重要).FWIW,当我在我的Ubuntu 16.04系统上使用sendmail
二进制文件的后缀实现时,你的sendmail
命令运行得很好。@Anthony Geoghegan:两者单独运行都很好,但正如我所说的,sendmail只发送正文,没有附件选项。我的sendmail脚本运行得很好,我无法发送附件正如我在问题sendmail
command(由sendmail/postfix/exim/…提供)中提到的,附件是一个“低级工具”。附件没有命令行选项-您必须自己生成格式正确的消息。对于“单个MIME部分”消息来说,这非常简单。