首先,这是关于1.9.1电子邮件队列的又一个问题/主题。但这与任何cron问题(如this或this)或未使用的新队列功能(如this)无关。
在我们的案例中,我们遇到了一个问题,即队列(core_email_queue
和core_email_queue_recipients
)根本不会收到任何有关新订单或订单更新的电子邮件,因此,不再有任何与订单相关的电子邮件被发送出去,而且cron的运行状况很好,并且手动将电子邮件添加到队列工作,他们被发送出去。
奇怪的是,在我们的测试环境中,一切正常。即使今天我们在开始的第一分钟上线了所有电子邮件,但过了几分钟(当然,在实时系统上没有任何进一步的修改),根本没有更多的新电子邮件添加到队列中。当第一个客户使用PayPal Express时,似乎发生了这种情况(但我不能确定),我们之前没有进行过测试:-/实际上,我们在使用旧sendNewOrderEmail()
功能的PayPal Express逻辑中使用了一些自定义替代。但是即使修补了使用的电子邮件,我们也无法使电子邮件重新工作queueNewOrderEmail()
。
因此,第一个问题是,旧功能是否可能引发了一些不一致,从而导致“中断” 电子邮件队列?还是所有这只是一个偶然的巧合,并且有完全不同的解释?
由于我们找不到问题,但是当然需要尽快重新使用电子邮件,因此我们进行了另一个核心替代。在Mage_Core_Model_Email_Template_Mailer
(当然是in的副本中local
),我们注释了第76行:->setQueue($this->getQueue())
这似乎绕过了队列,所有邮件再次以旧方式发送。
但是,由于我们希望将核心替代的数量保持在最低水平,并且我们现在也无法确定我们是否还会面临其他副作用,对magento代码和代码有更深了解的人们提出的其他任何技巧或解决方案电子邮件队列将不胜感激。
1.9.2更新:在升级到1.9.2时,我们再次仔细查看了电子邮件队列,无法重现该问题。但是,由于我们仍然没有真正的线索,1.9.1的问题是什么,并且由于覆盖Mage_Core_Model_Email_Template_Mailer::send()
仍然可以按此处描述的方式进行,因此我们仍未使用队列。这样,我们希望在生产一段时间后不再遇到相同的问题。
tl; dr:电子邮件队列在1.9.1中不起作用,在第76行中注释掉了Mage_Core_Model_Email_Template_Mailer
绕过电子邮件队列,并且再次发送了邮件,但这并不是一个好的解决方案。如何更好地解决呢?
core
以确保所有未定制的内容或扩展都已存在,并且未经修改,它是)。权限与旧设置匹配,日志/报告干净。
core_email_queue_send_all
为每分钟运行一次,并从中看到它实际上已执行。
exception.log
或可能system.log
,有什么线索吗?