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


Magento - cron job script is running, but Magento order confirmation emails are not sending

正如Magento文档所述,您需要在web服务器上设置一个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)通过加载它在我的web浏览器在mydomain.com/cron.php, Magento自动任务全部执行!由于脚本工作像这样,当我手动运行它,我知道cron工作正在工作…我想不明白!

请帮忙!

更多细节

以下是我如何知道cron作业是否正常工作的方法——我在服务器上测试了cron作业,方法是创建一个PHP脚本,该脚本使用mail()发送一个基本的电子邮件,并运行一个类似于上面的cron作业,每分钟执行一次——cron作业正常工作。每次cron作业运行时,我也从服务器获得MAILTO电子邮件。

我也可以在cron作业中执行这个命令…

/bin/sh/绝对路径//线上购物/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作业不能在sh的情况下运行cron.sh

我将尝试的一些步骤:

在终端:

检查你的cron日志:

tail -f /var/log/cron

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

检查cronjob是否存在:

crontab -l

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

chmod +x file.sh

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

pgrep crond

如果出现错误,您将收到一封记录错误的电子邮件,但这首先需要配置。你可以在这里看到解决方案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与本地邮件后缀启用发送cron状态电子邮件的gmail帐户我设置测试订单在我的Magento商店,MAMP测试Magento本地和AOE调度Magento扩展安装和配置。

我的代码是:

MAILTO="somebody@test.com"
curl -s -o /dev/null http://www.YOURDOMAIN.com/PATH_TO_MAGENTO/cron.php /dev/null

我希望这能帮助别人,因为我失去了将近2天的时间来获得正确的设置。好运!