在cron失败的情况下,Cron不会使用msmtp发送邮件

我试图configuration一台机器,以便它会发送给我一封电子邮件,如果其中一个cronjobs输出的东西,以防万一错误。

  • 我正在使用Debian Wheezy。
  • Cron正常工作(没有电子邮件function)。
  • 安装并configurationmsmtp。 已经将/ usr / {bin | sbin} / sendmail链接到/ usr / bin / msmtp。

我可以使用以下方式发送邮件:

echo "test" | mail -s "subject" [email protected] 

或通过执行:

 echo "test" | /usr/sbin/sendmail 

没有符号链接(/ usr / sbin / sendmail),cron会告诉我:

 (CRON) info (No MTA installed, discarding output) 

用我得到的符号链接:

 (root) MAIL (mailed 1 byte of output; but got status 0x004e, #012) 

你能build议如何configurationcron / msmtp对吗?

谢谢!

编辑:

注意:我错误地写了“msmtpd”。 它不是一个守护进程,而是一个名为“msmtp”(没有“d”结尾)的SMTP客户端。 它是按需执行的,它并不是一直在后台运行。

当我尝试使用msmtp发送电子邮件时,它可以工作:

 echo "test" | msmtp [email protected] 

在远端,我在SMTP服务器的日志中读到:

 Nov 2 09:26:10 S01 postfix/smtpd[12728]: connect from unknown[CLIENT_IP] Nov 2 09:26:12 S01 postfix/smtpd[12728]: 532301C318: client=unknown[CLIENT_IP], sasl_method=CRAM-MD5, [email protected] Nov 2 09:26:12 S01 postfix/cleanup[12733]: 532301C318: message-id=<> Nov 2 09:26:12 S01 postfix/qmgr[2404]: 532301C318: from=<[email protected]>, size=191, nrcpt=1 (queue active) Nov 2 09:26:12 S01 postfix/local[12734]: 532301C318: to=<[email protected]>, orig_to=<[email protected]>, relay=local, delay=0.62, delays=0.59/0.01/0/0.03, dsn=2.0.0, status=sent (delivered to command: IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #1001) Nov 2 09:26:12 S01 postfix/qmgr[2404]: 532301C318: removed Nov 2 09:26:13 S01 postfix/smtpd[12728]: disconnect from unknown[CLIENT_IP] 

而电子邮件则发送给目标用户。 所以看起来像msmtp客户端正常工作。

它必须是在cron / msmtp集成中的东西,但我不知道这可能是什么。 你可以帮我吗?

解决scheme是添加到我的用户的cronconfiguration(通过调用crontab -e):

 CRONARGS=-m/usr/bin/msmtp 

我和问题中所描述的完全一样,但是目前的答案并没有解决我的问题。 在我的情况下,问题的解释是,每当cron执行sendmail命令时,它将$HOME设置$HOME / ,而不是/home/<user> 。 因此,即使msmtp通过符号链接replace了sendmail ,也无法find位于$HOME/.msmtprc用户特定configuration文件。

我的解决scheme是使用/etc/msmtprc而不是$HOME/.msmtprc

这可能不是您的系统的最佳解决scheme,因为它可能会迫使您的/etc/msmtprc某些敏感数据被其他用户读取。

阅读更多: http : //comments.gmane.org/gmane.linux.debian.devel.bugs.general/671011