【发布时间】:2014-06-30 18:24:58
【问题描述】:
将我的网站从 1.4 升级到 1.8 后,我无法从管理面板发送订单电子邮件。
下新订单时,客户会收到订单电子邮件,但当我尝试从管理面板The order email has been sent 重新发送订单电子邮件时,会显示消息,但客户和管理员都没有收到电子邮件。
我打开了日志并尝试发送订单电子邮件,但没有任何日志。有没有人遇到过这个问题或找到任何解决方案?
【问题讨论】:
标签: magento magento-1.8
将我的网站从 1.4 升级到 1.8 后,我无法从管理面板发送订单电子邮件。
下新订单时,客户会收到订单电子邮件,但当我尝试从管理面板The order email has been sent 重新发送订单电子邮件时,会显示消息,但客户和管理员都没有收到电子邮件。
我打开了日志并尝试发送订单电子邮件,但没有任何日志。有没有人遇到过这个问题或找到任何解决方案?
【问题讨论】:
标签: magento magento-1.8
我也为CE 1.9.1下订单邮件无法发送的问题苦苦挣扎,但过了一段时间才发现问题:
从 Magento CE 1.9.1 开始,Magento 不会在订购过程中直接发送订购电子邮件。 相反,邮件排队并由 cron 发送。 所以请确保正确配置 Magento cronjob。
另请参阅:
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
【讨论】:
我自己一直在研究这个。我已经按照代码和函数回到了这个函数“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 数据库表,以查看电子邮件是否已发送给客户,如果是,则返回,但这不会发送电子邮件并应引发错误。所以我会说这是某个地方的错误。 修复它,以便您可以重新发送订单/发票电子邮件等。
复制
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
【讨论】: