我正在尝试使用以下代码从 shell 脚本发送电子邮件:
fileToAttach=cpu_usage.log
`(echo "To: [email protected]"
echo "From: [email protected]"
echo "Subject: Issue with CPU"
echo Issue with CPU
uuencode $fileToAttach $fileToAttach
)| eval /usr/sbin/sendmail -t `;
但我得到了
uuencode: command not found
有什么办法可以绕过它吗?
答案1
在 Red Hat 上,uuencode
和uudecode
命令随sharutils
软件包一起提供。
在 Red Hat Enterprise Linux 4 上,使用 up2date 命令安装此软件包。
up2date sharutils
在 Red Hat Enterprise Linux 5、Red Hat Enterprise Linux 6 和 Red Hat Enterprise Linux 7 上,使用 yum 命令安装此软件包。
yum install sharutils
来源:哪个rpm包提供了“uuencode”和“uudecode”命令?。
编辑:
如果目的是发送带有文本/纯附件文件的电子邮件,我的建议是发出以下命令:
fileToAttach=cpu_usage.log
(printf "To: [email protected]\n"
printf "From: [email protected]\n"
printf "MIME-Version: 1.0\n"
printf "Content-Type: text/plain; charset=\"US-ASCII\"\n"
printf "Content-Transfer-Encoding: 7bit\n"
printf "Subject: Issue with CPU\n\n"
printf "echo Issue with CPU\n"
cat "$fileToAttach"
)| /usr/sbin/sendmail -t
正如中提到的@安菲该解决方案提供一个空行来将电子邮件标题与电子邮件正文分开。