Magento 1.9.1-새 이메일 대기열에서 이메일을 보내고 있습니까?


9

Magento 1.9.1 릴리즈 노트 에 따르면 :

모든 Magento 이메일 (주문 확인 및 거래 포함)이 대기 중입니다.

그러나 새 주문 및 주문 업데이트 이메일을 제외한 이메일이 어떻게 대기 중인지 알 수 없습니다.

에서 이 답변 당신은 큐를 사용하여 나타나는 두 곳을 볼 수 있습니다.

POST 형식의 연락처와 같은 전자 메일에 대해 대기열을 인스턴스화 할 수있는 확실한 것이 누락 Mage_Contacts_IndexController되었습니까?

릴리스 노트가 잘못되었다고 생각되는 것을 볼 수 없습니다. 누군가 내 방식의 오류를 알려주십시오.

답변:


2

설치 크론 작업없이 깨끗한 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 설치가 아니며 설치 할 시간이 없으며 큰 차이가 없다고 생각했지만 분명히 잘못되었습니다. 답변을 편집했지만 테스트하지 않아 일부 중재자가 답변이 유용하지 않은 경우 답변을 삭제할 수 있습니다.
— 마이클

is_numeric 테스트는 사용자 정의 템플릿을로드 한 후 대기열을 템플릿 객체로 복원하는 것을 처리하는 것이라고 생각합니다. 여전히 대기열이 설정되어 있어야하며 주문 이메일 전송 기능을 제외하고는 발생하는 곳이 없습니다.
— Ashley Schroder
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.