Magento - cron作业脚本正在运行,但Magento订单确认电子邮件未发送

时间:2015-08-17 02:57:52

标签: php linux magento cron sh

正如Magento documentation所述,您需要在您的网络服务器上设置一个cron作业,以便将订单确认电子邮件发送出去,如下所示:

* * * * * /bin/sh /absolute/path/to/magento/cron.sh

这是一个非常简单的cron工作。问题是,Magento没有完成自动化任务。好像脚本不是由cron作业运行的。因此,订单确认电子邮件不会发送(在所有其他Magento自动化任务中)。

我已经安装了AOE Scheduler扩展名,以便仔细检查Magento中的每个自动化任务,并查看任务何时完成(或者,在这种情况下,当他们没有完成时)。包括core_email_queue_send_all在内的任务都没有在1分钟的时间间隔内完成。

现在这里是奇怪的部分。如果我只是在cron.php的网络浏览器中加载cron.sh脚本(cron.php触发mydomain.com/cron.php),Magento自动化任务全部执行!因为当我手动运行脚本时脚本就像这样,我知道cron的工作正在运行......我无法解决这个问题!

请帮忙!

其他详细信息

以下我知道cron作业是如何工作的 - 我在服务器上测试了cron作业,创建了一个发送mail()基本电子邮件的PHP脚本,并运行了类似的cron作业以上每分钟执行一次 - cron作业正常运行。每次cron作业运行时,我也会从服务器收到MAILTO封电子邮件。没有我能看到的错误。

我也可以在cron作业中执行这个确切的命令......

/bin/sh /absolute/path/to/magento/cron.sh
当我进入SSH时,

...在终端中,它成功运行脚本,Magento运行所有自动化任务。它只是在cron工作中每分钟都没有运行!

这很奇怪,我无法弄清楚......最后,如果客户不能做的话,我在Magento商店做的所有这些工作都没有实际意义。退房并收到确认电子邮件。

非常感谢任何建议。

更新

我能够使用wget命令来调用cron.php,但这仍然不是一个永久的解决方案。

wget -O /dev/null -q http://domain.com/cron.php

虽然它现在在技术上有效,但Magento的文档特别建议运行cron.sh,而不是cron.php。仍然会喜欢具体的答案,为什么cron工作不会与cron.sh一起运行sh

2 个答案:

答案 0 :(得分:1)

我会尝试一些步骤:

在终端:

检查你的cron日志:

tail -f /var/log/cron

你能看到正在运行的命令吗?

检查是否存在cronjobs:

crontab -l

检查cron用户是否具有该文件的可执行权限,如果不是:

chmod +x file.sh

cron正在运行吗?检查进程是否正在运行:

pgrep crond

答案 1 :(得分:1)

如果出现错误,您会收到一封记录错误的电子邮件, 但这首先需要配置。你可以在这里看到解决方案 https://www.phase2technology.com/blog/how-to-enable-local-smtp-server-postfix-on-os-x-leopard/

在这种情况下,此解决方案帮助了我http://support.xtento.com/wiki/Setting_up_the_Magento_cronjob

我的环境是OSX El Capitain,启用了本地邮件后缀,可以在我为Magento商店测试订单设置的gmail帐户上发送cron状态电子邮件,MAMP用于在本地测试Magento以及安装和配置AOE Scheduler Magento扩展。

对我有用的代码是:

MAILTO="somebody@test.com"

curl -s -o /dev/null http://www.YOURDOMAIN.com/PATH_TO_MAGENTO/cron.php /dev/null

我希望这可以帮助某人,因为我失去了将近两天的时间来获得正确的设置。祝你好运!