Shell-Script
有沒有辦法在 sendmail 命令中附加文件而不使用 uuencode
我正在嘗試使用以下程式碼從 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 上,
uuencode
anduudecode
命令隨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評論中提到的,該解決方案提供了一個空行來將電子郵件標題與電子郵件正文分開。