Shell-Script

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

  • February 26, 2020

我正在嘗試使用以下程式碼從 shell 腳本發送電子郵件:

fileToAttach=cpu_usage.log

`(echo "To: XXXXXX@gmail.com"
 echo "From: XXXXXX@gmail.com"
 echo "Subject: Issue with CPU"
 echo  Issue with CPU
 uuencode $fileToAttach $fileToAttach
 )| eval /usr/sbin/sendmail -t `;

但我得到

uuencode: command not found

有沒有辦法繞過它?

在 Red Hat 上,uuencodeanduudecode命令隨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: XXXXXX@gmail.com\n"
printf "From: XXXXXX@gmail.com\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 

正如@AnFi評論中提到的,該解決方案提供了一個空行來將電子郵件標題與電子郵件正文分開。

引用自:https://unix.stackexchange.com/questions/569795