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.