Magento 1.8中,从管理员发送订单电子邮件无效。

4

将我的网站从1.4升级到1.8后,我无法从管理员面板发送订单电子邮件。

当有新订单时,客户会收到订单电子邮件,但是当我尝试从管理员面板重新发送订单电子邮件时,“订单电子邮件已发送”消息显示,但客户和管理员都没有收到电子邮件。

我打开日志记录并尝试发送订单电子邮件,但没有记录。有人遇到过这个问题或找到解决方法吗?

2个回答

15

我自己也在研究这个问题。我已经追踪代码和函数到了这个函数 "public function sendNewOrderEmail()" 在:

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

从第1270行开始的代码是:

$emailSentAttributeValue = $this->load($this->getId())->getData('email_sent');
    $this->setEmailSent((bool)$emailSentAttributeValue);
    if ($this->getEmailSent()) {
        return $this;
    }

这段代码检查 sales_flat_order 数据库表格,以确定是否已向顾客发送了电子邮件,如果是,则仅返回结果。但是,该代码不会发送电子邮件,应该会抛出一个错误。因此,我认为出现了某个 bug。

要修复这个问题,可以将 app/code/core/Mage/Sales/Model/Order.php 复制到 app/code/local/Mage/Sales/Model/Order.php,并注释掉第 1273 行。

if ($this->getEmailSent()) {
            //return $this;
        }

对我非常有效。但只是在这一刻测试了它。

使用版本1.8.1进行测试。


完全正确,我在CE 1.9.0上遇到了同样的问题。 - odd_duck
+1 为使用本地文件夹点赞。谢谢,这让我头疼了好一阵子。 - KPheasey

1

我也曾遇到CE 1.9.1中订单电子邮件未发送的问题,但是过了一会儿后找到了问题所在:

从Magento CE 1.9.1开始,在订单处理过程中Magento不直接发送订单电子邮件。 相反,这些邮件被加入队列,并由cron定时发送。 因此,请确保正确配置Magento的cron作业。

还请参阅:

http://www.magentocommerce.com/knowledge-base/entry/ee1141-ce191-responsive-email#cron http://www.magentocommerce.com/knowledge-base/entry/ce18-and-ee113-installing#install-cron


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接