我的Magento安装发生了一些奇怪的事情。所有电子邮件都可以正常工作,但现在我在exception.log中有这些消息:
2015-05-11T10:00:02+00:00 ERR (3):
exception 'Exception' with message 'This letter cannot be sent.' in /var/www/vhosts/lvps91-250-119-53.dedicated.hosteurope.de/httpdocs/magento/app/code/core/Mage/Core/Model/Email/Template.php:399
Stack trace:
#0 /var/www/vhosts/lvps91-250-119-53.dedicated.hosteurope.de/httpdocs/magento/app/code/community/Ebizmarts/Mandrill/Model/Email/Template.php(24): Mage_Core_Model_Email_Template->send('info@mysite.de', 'mysite', Array)
#1 /var/www/vhosts/lvps91-250-119-53.dedicated.hosteurope.de/httpdocs/magento/app/code/community/Hackathon/MageMonitoring/Model/WatchDog/UberDog.php(108): Ebizmarts_Mandrill_Model_Email_Template->send('info@mysite.de', 'mysite', Array)
#2 [internal function]: Hackathon_MageMonitoring_Model_WatchDog_UberDog->triggerActiveDogs(Object(Mage_Cron_Model_Schedule))
#3 /var/www/vhosts/lvps91-250-119-53.dedicated.hosteurope.de/httpdocs/magento/app/code/core/Mage/Cron/Model/Observer.php(325): call_user_func_array(Array, Array)
#4 /var/www/vhosts/lvps91-250-119-53.dedicated.hosteurope.de/httpdocs/magento/app/code/core/Mage/Cron/Model/Observer.php(72): Mage_Cron_Model_Observer->_processJob(Object(Mage_Cron_Model_Schedule), Object(Mage_Core_Model_Config_Element))
#5 /var/www/vhosts/lvps91-250-119-53.dedicated.hosteurope.de/httpdocs/magento/app/code/core/Mage/Core/Model/App.php(1338): Mage_Cron_Model_Observer->dispatch(Object(Varien_Event_Observer))
#6 /var/www/vhosts/lvps91-250-119-53.dedicated.hosteurope.de/httpdocs/magento/app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Mage_Cron_Model_Observer), 'dispatch', Object(Varien_Event_Observer))
#7 /var/www/vhosts/lvps91-250-119-53.dedicated.hosteurope.de/httpdocs/magento/app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('default', Array)
#8 /var/www/vhosts/lvps91-250-119-53.dedicated.hosteurope.de/httpdocs/magento/cron.php(76): Mage::dispatchEvent('default')
#9 {main}
这是每5分钟写入日志文件所以我想它必须是尝试发送邮件和失败的cronjob。
我试过跟踪问题,这是由Template.php中的这个函数引起的,返回false:
$this->isValidForSend()
因此,在this建议之后,我将这一行添加到函数中,以找出它返回false的原因。它只是将isValidForSend的结果写入email.log文件。
Mage::Log(var_export(!Mage::getStoreConfigFlag('system/smtp/disable'),true).';'.var_export($this->getSenderName(),true).';'.var_export($this->getSenderEmail(),true).';'.var_export($this->getTemplateSubject(),true),null,'email.log');
email.log的结果:
2015-05-11T08:35:02+00:00 DEBUG (7): true;'MACHIMA';'info@mysite.de';NULL
2015-05-11T08:40:02+00:00 DEBUG (7): true;'MACHIMA';'info@mysite.de';NULL
2015-05-11T08:45:02+00:00 DEBUG (7): true;'MACHIMA';'info@mysite.de';NULL
2015-05-11T08:50:02+00:00 DEBUG (7): true;'MACHIMA';'info@mysite.de';NULL
所以一切似乎都没问题,只是
返回的最后一个NULL值$this->getTemplateSubject()
导致函数失败。
我检查了大约10次配置,但没有找到任何正在发送的电子邮件,并且错过了某个主题。
我现在的想法是,可能有一个电子邮件卡在队列中Magento每隔5分钟就会发送一次。
有没有办法追踪它的来源?
由于
答案 0 :(得分:1)
我认为您安装了一些社区模块,但配置不当。如果查看抛出的异常,您会看到一个名为Ebizmarts
的模块,它扩展了Magento Email模板。我也看到这个模块专门从事电子邮件营销(这可能是我们有问题的电子邮件!);所以首先要确保它配置正确。您可以找到其手册here。
另外,跟踪异常的一种好方法可能是暂时禁用外部模块以查看它们是否持续存在。