如何使用cron执行mutt发送邮件?

时间:2014-06-24 15:31:44

标签: email cron mutt

我想使用cron执行mutt脚本以定期发送电子邮件。我已经安装了mutt并通过执行mutt脚本成功发送了电子邮件,如:

#!/bin/bash
mutt -s "Test from mutt" user@yahoo.com < /tmp/message.txt -a /tmp/file.jpg

然后我尝试在cron中执行此脚本,但是cron没有按照我的预期发送电子邮件。我确信我的cron正在工作,因为我使用cron来执行另一个电子邮件工具:

#!/bin/bash
mail -s "Hello" "user@gmail.com"

这次cron完成了工作,并在预期的时间发送了电子邮件。所以我想在使用cron执行mutt命令时可能存在一些问题。谁能帮我? 我的cron脚本如下:

15 * * * * bash /Users/DengWenzhe/Study/SportsMedia101/sendEmail.sh

编辑: 我想使用mutt的原因是我想发送带附件的电子邮件,“邮件”版本不能。如果有人知道一个可以与cron一起使用的命令电子邮件工具,那也会有所帮助。

3 个答案:

答案 0 :(得分:2)

可能是你混淆了你的论点?

mutt -s "Test from mutt" -a /tmp/file.jpg -- user@yahoo.com < /tmp/message.txt 

如果这不起作用,请检查您的环境变量。在cron执行期间,您没有获得登录shell,因此您可能缺少EMAIL,MAIL,MAILDIR,REPLYTO或您的mutt配置所依赖的一些环境变量。

答案 1 :(得分:0)

我遇到了同样的问题,注意到电子邮件会显示在邮箱中以显示已发送的邮件,但他们并未联系到收件人。

正如flob所提到的,我错过了MAIL环境变量;最后,完成这项工作的crontab行是

# Use a login shell, this provides Mutt with the environment variables it needs
* * * * * bash -l -c 'echo "Body" | mutt -s "Subject" recipient@example.com'

有关提供环境变量的不同方法,请参阅this answer

答案 2 :(得分:0)

我遇到了同样的问题,就我而言,我忘记添加. /home/user/.profile来使cron能够执行mutt。我希望这会有所帮助...