我正在帮助某人建立一家从另一家公司购买的Magento商店。该商店允许用户上传项目,用户可以在网站上互相发送消息。除了用户在收到新消息时没有收到电子邮件通知,这一切都非常好用。
每次用户收到新消息时,我如何实施自动发送电子邮件?
由于
答案 0 :(得分:1)
您可以添加事件观察者。您有代码处理用户发送的消息。对不起,我不能更具体,但听起来这个网站有一个定制的模块,所以我无法告诉你在哪里看。
一旦找到了消息魔术发生的功能,你可以在那里发送你自己的事件
Mage::dispatchEvent('user_message_sent_after');
然后,在自定义模块中,您将查找config.xml文件(它应该位于etc /文件夹中)。在那里你添加了像
这样的东西<frontend>
<events>
<user_message_sent_after>
<observers>
<your_name_for_this_tag>
<type>singleton</type>
<class>Packagename_Modulename_Model_Observer</class>
<method>sendEmailNotification</method>
</your_name_for_this_tag>
</observers>
</user_message_sent_after>
</events>
</frontend>
如果已经存在事件标记,则添加到事件标记而不是第二个。 'user_message_sent_after'不是默认的Magento事件。我编写了名称,您可以使用任何其他名称,只要它与您在dispatchEvent调用中使用的名称相同。
定义电子邮件模板。在app \ locale \ yourlanguage_yourcountrycode \ template \ email \文件夹中,添加名为message_notification的文件
Hi {{var name}},<br>
{{var sender}} has sent you a message!<br>
Bye
接下来,您最后添加实际的观察者。在自定义模块中找到模型文件夹,然后添加一个名为Observer.php的文件。在此文件中,您可以添加类似
的内容<?php
class Packagename_Modulename_Model_Observer {
public function sendEmailNotification($observer) {
// add emailing functionality
}
关于如何发送电子邮件的旧的但仍然非常有用和基本的解释在这里:http://inchoo.net/ecommerce/magento/magento-custom-emails/