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

时间:2016-02-05 04:18:51

标签: linux cron sendmail

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

这是我的剧本:

from=zshapm01@wacker.com
to=$1
subject=$2
body=$3

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)

请帮助,谢谢。

2 个答案:

答案 0 :(得分:0)

您发布的错误消息中的“发件人”字段为空。

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

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

根据您使用的sendmail版本,您可能会发现需要另一台交换机,但我认为这就是您的脚本无法发送消息的原因。

答案 1 :(得分:0)

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