Magento 1.9.1 - Wiadomości e-mail są wysyłane przez nową kolejkę e-mail?

9

Zgodnie z uwagami do wydania Magento 1.9.1 :

wszystkie wiadomości e-mail Magento (w tym potwierdzenie zamówienia i transakcje) są teraz w kolejce

Nie widzę jednak, w jaki sposób e-maile z wyjątkiem wiadomości e-mail z nowym zamówieniem i aktualizacją zamówień są kolejkowane.

W tej odpowiedzi możesz zobaczyć tylko dwa miejsca, które wydają się korzystać z kolejki.

Czy brakuje mi czegoś oczywistego, co spowodowałoby utworzenie kolejki dla wiadomości e-mail, na przykład formularza kontaktowego POST Mage_Contacts_IndexController?

Nic nie widzę, co sprawia, że ​​uważam, że informacje o wydaniu są błędne. Czy ktoś mógłby mi pokazać błąd moich działań?

Ashley Schroder
źródło

Odpowiedzi:

2

Przetestowałem go na czystej instalacji Magento 1.9.0.1 bez konfiguracji crona i wysłałem mi kontaktowy adres e-mail. Więc to nie są maile kontaktowe do kolejki. A jeśli spojrzysz na kod, zobaczysz to samo:

Mage_Contacts_IndexController-> public function postAction()-> sendTransactionalktóre wzywa:

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

Na głębszym poziomie wywołuje Zend_Mail-> public function send-> $transport->send($this);-> Zend_Mail_Transport_Abstract-> public function send-> $this->_sendMail();-> Zend_Mail_Transport_Sendmail->, public function _sendMail()które w końcu wywołuje bezpośrednio mail()funkcję PHP :

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

W Magento 1.9.1.0 jest dodany

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

w Mage_Core_Model_Email_Template-> public function sendktóre należy ustawić w public function sendTransactional:

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

ale $templateIdpowinna być równa contacts_email_email_template(domyślnie), więc nie jest liczbowa. Ale jeśli wybierzesz niestandardowy szablon e-maila, będzie on numeryczny, więc może e-mail zostanie umieszczony w kolejce, ale go nie przetestowałem.

Michał
źródło
Myślę, że OP wspomniało wydanie 1.9.1.
Joshua34
Przykro mi, ale nie mam instalacji 1.9.1 (i nie mam czasu, aby ją zainstalować) i pomyślałem, że nie ma dużej różnicy (ale najwyraźniej się myliłem). Zredagowałem swoją odpowiedź, ale jej nie przetestowałem, więc moderator może usunąć moją odpowiedź, jeśli nie jest przydatna.
Michael
Myślę, że test is_numeric służy tylko do przywracania kolejki do obiektu szablonu po załadowaniu niestandardowego szablonu. Nadal wymaga, aby kolejka była już ustawiona i nigdzie nie widzę, z wyjątkiem funkcji wysyłania wiadomości e-mail zamówienia.
Ashley Schroder,