我试图configuration一台机器,以便它会发送给我一封电子邮件,如果其中一个cronjobs输出的东西,以防万一错误。
我可以使用以下方式发送邮件:
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