将我的网站从1.4升级到1.8后,我无法从管理员面板发送订单电子邮件。
当有新订单时,客户会收到订单电子邮件,但是当我尝试从管理员面板重新发送订单电子邮件时,“订单电子邮件已发送”消息显示,但客户和管理员都没有收到电子邮件。
我打开日志记录并尝试发送订单电子邮件,但没有记录。有人遇到过这个问题或找到解决方法吗?
将我的网站从1.4升级到1.8后,我无法从管理员面板发送订单电子邮件。
当有新订单时,客户会收到订单电子邮件,但是当我尝试从管理员面板重新发送订单电子邮件时,“订单电子邮件已发送”消息显示,但客户和管理员都没有收到电子邮件。
我打开日志记录并尝试发送订单电子邮件,但没有记录。有人遇到过这个问题或找到解决方法吗?
我自己也在研究这个问题。我已经追踪代码和函数到了这个函数 "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.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