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

时间:2014-12-12 19:04:45

标签: magento

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

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

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

有什么想法吗?在升级之前,他们在1.7.0.2中运行良好。

10 个答案:

答案 0 :(得分:19)

Magento 1.9 开始,订单确认电子邮件不再在结帐期间发送,而是与 Cron 一起发送。要验证这是否正常工作:

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

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

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

    这会安排任务每五分钟运行一次cron.sh。 (More reading

Magento中有很好的扩展程序,例如AOE Scheduler,可以帮助您监控和管理Cron作业。


另一种方法是为这类电子邮件禁用 Cron(订单确认)。要做到这一点,你可以走这条路:

public_html/app/code/core/Mage/Sales/Model/Order.php

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

public_html/app/code/local/Mage/Sales/Model/Order.php

然后改变这一行:

$mailer->setQueue($emailQueue)->send();

要:

$mailer->send();

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

答案 1 :(得分:14)

只需对order.php(public_html/app/code/core/Mage/Sales/Model/Order.php

进行一些小改动

$mailer->setQueue($emailQueue)->send();

$mailer->send();

答案 2 :(得分:7)

我发现解决方案很简单。

go to System -> Configuration -> ASCHRODER EXTENSIONS -> SMTP -> Queue Configuration -> Queue Usage -> Never

完成!

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

答案 3 :(得分:1)

快速解决方案是:

转到以下位置:/app/code/core/Mage/Core/Model/Email/Template.php

更改第407行

if ($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) {

要:

if (!($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue)) {

它会起作用。

谢谢Pankaj

答案 4 :(得分:1)

如果您不想对xml文件进行任何更改,请填写'app / code / core / Mage / Sales / Model / Order.php'文件。所以只需复制/ app / code / core / Mage / Sales / Model /Order.php到/app/code/local/Mage/Sales/Model/Order.php并确保刷新缓存。并改变

$mailer->setQueue($emailQueue)->send();

$mailer->send();

答案 5 :(得分:1)

转到/app/code/core/Mage/Core/Model/Email/Template.php

以下更改:

if ($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) {

if (false){

答案 6 :(得分:0)

我有完全相同的问题。对我而言,它是order.php的本地副本,我在过去曾做过一些更改,并且已复制到\ app \ code \ local \ Mage \ Sales \ Model \ Order.php。

因此,核心目录中Magento 1.9.1.0的更新order.php未被使用 - 导致订单确认电子邮件不会通过cron作业自动发送。

我保持手指交叉,你会遇到同样的问题。

答案 7 :(得分:0)

只需在cpanel或plesk面板中添加cron即可。它将在cpanel上提供 - >高级并单击cron文件夹。然后继续:

    <分钟'字段中的
  • */5(可以自定义)
  • *在“小时”字段中
  • *在“日”字段中
  • *在“月”字段中
  • *在“工作日”字段中

评论:http://www.yoursite.com/absolute/path/to/magento/cron.php

答案 8 :(得分:0)

答案很多,但没有一个对我有用。我是如何解决的, 检查您是否在magento中存在默认模板设置。有时在安装过程中它会丢失并且实际上&#34;默认情况下系统中没有电子邮件模板来发送您的电子邮件&#34;。请转到管理员端,System->Transactional Email->默认情况下,您在此处找不到模板。因此,点击按钮&#39; Add new Email template添加一个。在Load default template面板中,从模板下拉列表中选择一个模板,假设忘记密码,然后单击并单击Load Template。如前所述,没有与之关联的电子邮件模板,因此不会在下面显示。 bset是在本地系统中安装magento的新副本,在此处导航并在此处输入相同的内容,然后单击Save Template按钮。 然后转到System->Configuration->Customer Configuration ->Password Options->Change忘记电子邮件模板&#39;如上所述,你的下拉。快乐。因此,您也可以为订单,发货,新帐户​​等做同样的事情。

答案 9 :(得分:0)

要调试有关新订单的magento订单邮件问题,请运行yoursite.com/cron.php 如果您现在收到任何邮件,那么它的cron问题。 您可以通过在cpanel中设置cron来修复con问题。