Magento 1.9.1 - E-Mails werden von der neuen E-Mail-Warteschlange gesendet?


9

Gemäß den Versionshinweisen zu Magento 1.9.1 :

Alle Magento-E-Mails (einschließlich Auftragsbestätigung und Transaktion) werden jetzt in die Warteschlange gestellt

Ich kann jedoch nicht sehen, wie E-Mails mit Ausnahme der E-Mails für neue Bestellungen und Bestellaktualisierungen in die Warteschlange gestellt werden.

In dieser Antwort sehen Sie die einzigen zwei Stellen, an denen die Warteschlange verwendet wird.

Vermisse ich etwas Offensichtliches, bei dem die Warteschlange für E-Mails wie das Kontaktformular POST instanziiert wurde Mage_Contacts_IndexController?

Ich kann nichts sehen, was mich denken lässt, dass die Versionshinweise falsch sind. Jemand, bitte zeigen Sie mir den Fehler meiner Wege.

Antworten:


2

Ich habe es auf einer sauberen Magento 1.9.0.1-Installation ohne Setup-Cron-Job getestet und mir eine Kontakt-E-Mail gesendet. Es handelt sich also nicht um Kontakt-E-Mails in der Warteschlange. Und wenn Sie sich den Code ansehen, werden Sie dasselbe sehen:

Mage_Contacts_IndexController-> public function postAction()-> sendTransactionalwelche Anrufe:

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

Auf einer tieferen Ebene ruft es Zend_Mail-> public function send-> $transport->send($this);-> Zend_Mail_Transport_Abstract-> public function send-> $this->_sendMail();-> Zend_Mail_Transport_Sendmail-> auf, public function _sendMail()was schließlich direkt die PHP- mail()Funktion aufruft :

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

In Magento 1.9.1.0 wurde es hinzugefügt

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

in Mage_Core_Model_Email_Template-> public function sendwas eingestellt werden sollte in public function sendTransactional:

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

aber $templateIdsollte gleich sein contacts_email_email_template(Standardeinstellung) , so dass es nicht numerisch ist. Wenn jedoch eine benutzerdefinierte E-Mail-Vorlage ausgewählt ist, wird diese numerisch angezeigt. Vielleicht wird die E-Mail in die Warteschlange gestellt, aber ich habe sie nicht getestet.


Ich denke, OP erwähnte die Veröffentlichung von 1.9.1.
Joshua34

Es tut mir leid, aber ich habe keine 1.9.1-Installation (und ich habe keine Zeit, sie zu installieren) und ich dachte, dass es keinen großen Unterschied gibt (aber ich habe mich eindeutig geirrt). Ich habe meine Antwort bearbeitet, aber nicht getestet, damit ein Moderator meine Antwort löschen kann, wenn sie nicht nützlich ist.
Michael

Ich denke, der is_numeric-Test dient nur dazu, die Warteschlange nach dem Laden einer benutzerdefinierten Vorlage im Vorlagenobjekt wiederherzustellen. Es ist weiterhin erforderlich, dass die Warteschlange bereits eingerichtet ist, und ich sehe nirgendwo etwas, was passiert, außer in den Funktionen zum Senden von E-Mails.
Ashley Schroder
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.