4

我想使用 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 很好地配合使用的命令电子邮件工具,那也会有所帮助。

4

3 回答 3

2

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

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

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

于 2014-06-24T15:34:37.160 回答
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'

有关提供环境变量的不同方法,请参阅此答案

于 2018-05-07T19:40:55.947 回答
0

我有同样的问题,在我的情况下,我忘记添加. /home/user/.profile以使 cron 能够执行 mutt。我希望这有帮助...

于 2019-05-22T08:08:11.923 回答