Magento 1.9.1-新的电子邮件队列发送的电子邮件?


9

根据Magento 1.9.1发行说明

现在,所有Magento电子邮件(包括订单确认和交易邮件)都已排队

但是,我看不到如何将除新订单和订单更新电子邮件之外的其他电子邮件排队。

此答案中,您只能看到似乎使用队列的两个位置。

我是否遗漏了一些明显的东西,例如电子邮件联系表POST in,实例化了队列Mage_Contacts_IndexController

我什么都看不到,这使我认为发行说明有误,请有人告诉我我的方式是否错误?

Answers:


2

我在干净的Magento 1.9.0.1安装中对其进行了测试,没有安装cron作业,它给我发送了联系电子邮件。因此,它不是将联系电子邮件排队。如果您看一下代码,将会看到相同的内容:

Mage_Contacts_IndexController-> public function postAction()-> sendTransactional其中调用:

Mage_Core_Model_Email_Template- > public function sendTransactional- > public function send- > $mail->send();

在更深层次上,它调用Zend_Mail-> public function send-> $transport->send($this);-> Zend_Mail_Transport_Abstract-> public function send-> $this->_sendMail();-> Zend_Mail_Transport_Sendmail-> public function _sendMail(),最终直接调用PHP mail()函数:

    $result = mail(
        $this->recipients,
        $this->_mail->getSubject(),
        $this->body,
        $this->header);

在Magento 1.9.1.0中已添加

if ($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) {
...
$emailQueue->addMessageToQueue();

Mage_Core_Model_Email_Template-> public function send中应在中设置public function sendTransactional

        if (is_numeric($templateId)) {
            $queue = $this->getQueue();
            $this->load($templateId);
            $this->setQueue($queue);
        }

$templateId应等于contacts_email_email_template(默认情况下),因此它不是数字。但是,如果选择了自定义电子邮件模板,则它将是数字形式,因此可能会将电子邮件排队,但我没有对其进行测试。


我认为OP提到了1.9.1版本。
2015年

抱歉,我没有安装1.9.1(并且我没有时间安装它),我认为并没有太大区别(但显然我错了)。我编辑了答案,但没有进行测试,因此如果没有用,某些主持人可以删除答案。
迈克尔

我认为is_numeric测试只是在加载自定义模板后处理将队列恢复到模板对象的过程。它仍然需要已设置队列,并且除了订购电子邮件发送功能外,我看不到其他任何地方。
Ashley Schroder 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.