Magento 1.9.1.0订单确认电子邮件 - 不发送

Joh*_*ell 14 magento

我最近已升级到Magento CE 1.9.1.0,我们的订单确认电子邮件未发送给设置为接收通知的客户或此处的员工.

我检查了电子邮件日志,但根本没有看到电子邮件到达服务器.

电子邮件来自联系表单,新用户帐户注册以及我在服务器上创建的一些测试脚本.我确保禁用电子邮件通信设置为"否".

有任何想法吗?在升级之前,他们在1.7.0.2中工作得很好.

Hat*_*tef 19

Magento 1.9开始,订单确认电子邮件不再在结账时发送,而是与Cron一起发送.要验证这是否正常:

  • 确保您的系统Cron已启动并运行(您可以检查Cron日志:/var/log/cron验证).

  • 确保Magento Cron设置正确并且每隔几分钟运行一次.您应该在系统的Crontab中看到类似的内容:

    */5 * * * * /public_html/cron.sh

    这会将任务计划为cron.sh每五分钟运行一次.(更多阅读)

像Magento中的AOE Scheduler这样的好的扩展可以帮助您监视和管理Cron作业.


另一种方法是禁用这些电子邮件的Cron(订单确认).为此,您可以转到此路径:

public_html/app/code/core/Mage/Sales/Model/Order.php
Run Code Online (Sandbox Code Playgroud)

复制该文件并将其带到此路径(如果路径不存在则创建它):

public_html/app/code/local/Mage/Sales/Model/Order.php
Run Code Online (Sandbox Code Playgroud)

然后改变这一行:

$mailer->setQueue($emailQueue)->send();
Run Code Online (Sandbox Code Playgroud)

至:

$mailer->send();
Run Code Online (Sandbox Code Playgroud)

但是我建议花一些时间来设置Cron.我想如果他们想将Cron用于这些电子邮件,那是有原因的.

  • 谢谢你指点我正确的方向.确实没有正确设置cron.我确实要添加"$ isShellDisabled = true;" 到cron.php文件,因为它似乎是一个错误.在另一个网站上找到了提示. (2认同)

小智 14

只需在order.php(public_html/app/code/core/Mage/Sales/Model/Order.php)中做一个小改动

$mailer->setQueue($emailQueue)->send();
Run Code Online (Sandbox Code Playgroud)

$mailer->send();
Run Code Online (Sandbox Code Playgroud)


Nir*_*raj 7

我发现解决方案很简单.

go to System -> Configuration -> ASCHRODER EXTENSIONS -> SMTP -> Queue Configuration -> Queue Usage -> Never
Run Code Online (Sandbox Code Playgroud)

完成!

订单确认将快速发送.:)