在Magento中自动发送电子邮件

时间:2013-12-08 11:56:20

标签: php magento email email-integration

我正在帮助某人建立一家从另一家公司购买的Magento商店。该商店允许用户上传项目,用户可以在网站上互相发送消息。除了用户在收到新消息时没有收到电子邮件通知,这一切都非常好用。

每次用户收到新消息时,我如何实施自动发送电子邮件?

由于

1 个答案:

答案 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/