我想知道是否有人可能对我有一些建议,为什么我有一个事件观察者类,当我将它绑定到 controller_action_predispatch 时实例化得很好,但是当我'将它绑定到 aschroder_smtppro_before_send ,这是我需要它工作的地方。
我不想最终跳过正确的方式,而是覆盖 Zend_Mail 中的某些内容,相反,但是在我花了几个小时后,我有点绝望了。当与正确的事件联系在一起时,我花了很多时间试图弄清楚为什么这根本不起作用。
所有这些都是关于实现一个非常简单的域名黑名单,以拦截和阻止交易电子邮件(通过我们服务器上的 SMTPPro 处理)到适用的域。我的意思是,最终。现在它只是测试代码,你可以看到如下。
config.xml遵循:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Myorganization_Emailblacklist>
<version>0.1.0</version>
</Myorganization_Emailblacklist>
</modules>
<global>
<helpers>
<emailblacklist>
<class>Myorganization_Emailblacklist_Helper</class>
</emailblacklist>
</helpers>
<models>
<myorganization_emailblacklist>
<class>Myorganization_Emailblacklist_Model</class>
</myorganization_emailblacklist>
</models>
<events>
<!-- <controller_action_predispatch> -->
<aschroder_smtppro_before_send>
<observers>
<myorganization_emailblacklist>
<type>singleton</type>
<class>myorganization_emailblacklist/observer</class>
<method>watchEmails</method>
</myorganization_emailblacklist>
</observers>
</aschroder_smtppro_before_send>
<!-- </controller_action_predispatch> -->
</events>
</global>
</config>
app / code / local / Myorganization / Emailblacklist / Model / Observer.php如下:
<?php
class Uselite_Emailblacklist_Model_Observer {
public function watchEmails(Varien_Event_Observer $observer) {
$order = $observer->getEvent();
//echo "<pre>";
//die(var_dump($order));
Mage::log('Damo\'s debugging info order:\n' . var_dump($order) .
'\n debugging info observer:\n' . var_dump($observer), null,
'd4m0log.log');
}
}
您可能提供的任何帮助,或者指向正确方向的指示都将非常感激。提前谢谢。
-Damon
答案 0 :(得分:0)
您是否尝试过 aschroder_smtppro_template_before_send 而不是aschroder_smtppro_before_send?据我所知,此扩展程序会覆盖电子邮件模板引擎。