从1.4升级到1.8后,我无法从管理面板发送订单电子邮件。
当一个新订单被放置时,客户收到订单电子邮件,但是当我试图从管理面板重新发送订单电子邮件时,The order email has been sent
消息显示,但客户和管理员都没有收到电子邮件。
我打开日志记录并尝试发送订单电子邮件,但没有记录。有人遇到这个问题或找到解决方案吗?
我自己也在调查这件事。我已经按照代码和函数回到这个函数"public function sendNewOrderEmail()"在:
应用程序/代码/核心/法师/销售/模型/Order.php
从第1270行开始的是以下代码:
$emailSentAttributeValue = $this->load($this->getId())->getData('email_sent');
$this->setEmailSent((bool)$emailSentAttributeValue);
if ($this->getEmailSent()) {
return $this;
}
这是检查sales_flat_order db表,看看电子邮件是否已经发送给客户,如果已经发送,则返回,但这不会发送电子邮件,并且应该抛出一个错误。所以我会说这是某个地方的bug。修复它,以便您可以重新发送订单/发票电子邮件等。
复制应用程序/代码/核心/法师/销售/模型/Order.php
app/代码/地方/法师/销售/模型/Order.php
并注释掉第1273行
if ($this->getEmailSent()) {
//return $this;
}
对我很有魅力。但实际上只有第二次测试了它。
使用ver测试。1.8.1
我也在CE 1.9.1中遇到订单邮件不发送的问题,但过了一段时间后发现了这个问题:
从Magento CE 1.9.1开始,Magento在订购过程中不直接发送订单电子邮件。相反,邮件被排队并由cron发送。因此,请确保正确配置Magento cronjob。
也可参考:
http://www.magentocommerce.com/knowledge-base/entry/ee1141-ce191-responsive-email cronhttp://www.magentocommerce.com/knowledge-base/entry/ce18-and-ee113-installing install-cron