Sendmail无法使用crontab(bash)

use*_*539 1 bash sendmail crontab

我创建了一个磁盘清理脚本,在清理后发送状态电子邮件.现在,当我通过命令行运行它时,它执行完美,但通过cronjob它无法发送staus邮件休息,脚本工作正常.我在谷歌阅读了很多解决方案,但没有什么对我有用.我在我的Ubuntu机器上使用Bash.这是sendmail的一部分我的脚本.

export CONTENT="/root/cleanup/cleanup.htm"                                           
export SUBJECT="Disk Space Clean Up Process : Completed @ $date_time"

(echo "Subject: $SUBJECT"
echo "`cat sendmail_list.txt`"
echo "MIME-Version: 1.0"
echo "Content-Type: text/html"
echo "Content-Disposition: inline"
cat $CONTENT
)|/usr/sbin/sendmail -t 
Run Code Online (Sandbox Code Playgroud)

请帮我知道解决方案......谢谢

小智 10

/usr/sbin在sh文件中的sendmail之前添加:

/usr/sbin/sendmail "user@domain.com" < file.txt 
Run Code Online (Sandbox Code Playgroud)

希望它有助于https://stackoverflow.com/editing-help


gle*_*man 3

邮件标题和正文之间需要有一个空行。

{
    echo "Subject: $SUBJECT"
    echo "$(< sendmail_list.txt)"
    echo "MIME-Version: 1.0"
    echo "Content-Type: text/html"
    echo "Content-Disposition: inline"
    echo ""
    cat $CONTENT
} | /usr/sbin/sendmail -t 
Run Code Online (Sandbox Code Playgroud)

其他一些事情:

  • 这里不需要子 shell,所以我将周围的括号更改为大括号
  • 因为这是 bash,所以有一个简写形式$(cat file)——$(< file)