SuSE cron 作业中的脚本无法发送邮件

script in SuSE cron job can't send mail

我有一个 SuSE 脚本,它调用 sendmail 向我发送邮件,它在命令行中工作。但是当我把它放在 cron 作业中时,邮件不再发送了。

这是我的脚本:

from=zshapm01@wacker.com
to=
subject=
body=

echo "From:$from
To:$to
Subject: $subject
Content-Type: multipart/mixed; boundary="-unique-str"

---unique-str
Content-Type: text/html
Content-Disposition: inline

$body
" | sendmail -t $to

这是来自 /var/log/mail 的日志:

Feb  5 11:27:01 zshapm01 postfix/pickup[18721]: DE0F224046: uid=0 from=<root>
Feb  5 11:27:01 zshapm01 postfix/cleanup[27258]: DE0F224046: message-id=<20160205032701.DE0F224046@zshapm01.servers.wacker.corp>
Feb  5 11:27:01 zshapm01 postfix/qmgr[2919]: DE0F224046: from=<root@zshapm01.servers.wacker.corp>, size=599, nrcpt=1 (queue active)

请帮忙,谢谢。

您发布的错误消息中的 'From' 字段为空。

当从命令行使用 sendmail 时,它使用本地环境变量(例如,当您以 root 身份登录时,对于 root 帐户)找出发送帐户是谁。

在您的错误消息中,您可以看到 'from=' 是空的。因此,当从 cron 作业中使用 sendmail 时,您必须为其提供一个选项(我认为是 /USER= 开关)来指定发件人的电子邮件帐户。

根据您使用的 sendmail 版本,您可能会发现您需要另一个开关,但我认为这就是您的脚本无法发送邮件的原因。

问题已解决。必须在脚本中使用绝对路径:/sbin/sendmail