有没有办法在 sendmail 命令中附加文件而不使用 uuencode

有没有办法在 sendmail 命令中附加文件而不使用 uuencode

我正在尝试使用以下代码从 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 上,uuencodeuudecode命令随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 

正如中提到的@安菲该解决方案提供一个空行来将电子邮件标题与电子邮件正文分开。

相关内容