Magento 1.9.1 - Письма, отправленные новой почтовой очередью?

9

Согласно примечаниям к выпуску Magento 1.9.1 :

все электронные письма Magento (включая подтверждение заказа и транзакции) теперь находятся в очереди

Тем не менее, я не могу видеть, как какие-либо электронные письма, кроме новых писем о заказе и обновлении заказа, ставятся в очередь.

В этом ответе вы видите только два места, которые используют очередь.

Я что-то упускаю из виду, что очередь сообщений будет создаваться для электронной почты, такая как контактная форма POST Mage_Contacts_IndexController?

Я ничего не вижу, что заставляет меня думать, что примечания к выпуску неверны, кто-то, пожалуйста, покажите мне ошибку моих путей?

Эшли Шредер
источник

Ответы:

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()что в итоге вызывает mail()функцию PHP :

    $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.
Joshua34
Извините, но у меня нет 1.9.1 установки (и у меня нет времени на ее установку), и я подумал, что нет большой разницы (но, очевидно, я ошибался). Я отредактировал свой ответ, но не проверял его, поэтому какой-то модератор может удалить мой ответ, если он бесполезен.
Майкл
Я думаю, что тест is_numeric просто для обработки восстановления очереди к объекту шаблона после загрузки пользовательского шаблона. Для этого все еще требуется, чтобы очередь была уже установлена, и я не вижу нигде, что происходит, кроме как в функциях отправки электронной почты заказа.
Эшли Шредер