Magento 1.9.1-新しいメールキューによってメールが送信されていますか?


9

よるとMagentoの1.9.1のリリースノート

すべてのMagento Eメール(注文確認やトランザクションを含む)がキューに入れられます

ただし、新しい注文と注文更新のメール以外のメールがどのようにキューに入れられているかはわかりません。

ではこの回答あなたはキューを使用するように見える2つだけの場所を見ることができます。

お問い合わせフォームPOSTなどの電子メール用にキューがインスタンス化される明白な何かが欠けていますMage_Contacts_IndexControllerか?

何も見えず、リリースノートが間違っていると思います。誰かが私の方法のエラーを教えてください。

回答:


2

私はそれをセットアップcronジョブなしでクリーンなMagento 1.9.0.1インストールでテストし、それは私に連絡メールを送りました。したがって、連絡先メールのキューではありません。そして、コードを見ると同じことがわかります:

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リリースについて言及したと思います。
Joshua34

申し訳ありませんが、1.9.1がインストールされておらず(インストールする時間もありません)、大きな違いはないと思っていました(ただし、明らかに間違っていました)。回答を編集しましたが、テストしなかったため、モデレーターが役に立たない場合は回答を削除できます。
マイケル、2015年

is_numericテストは、カスタムテンプレートを読み込んだ後の、テンプレートオブジェクトへのキューの復元を処理するためのものだと思います。それでもキューはすでに設定されている必要があり、注文の電子メール送信機能以外では何が起こっているのかわかりません。
Ashley Schroder
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.