Php 在Magento中自动发送电子邮件

Php 在Magento中自动发送电子邮件,php,magento,email,Php,Magento,Email,我正在帮助别人建立一家从另一家公司买来的Magento商店。商店允许用户上传物品,用户可以在网站上互相发送信息。除了用户在收到新消息时没有收到电子邮件通知之外,这一切都非常好 每次用户收到新消息时,我将如何实现自动发送电子邮件 谢谢您可以添加事件观察员。您在某个地方有处理用户发送的消息的代码。很抱歉,我不能说得更具体,但听起来该网站有一个定制的模块,所以我不能告诉你去哪里找 一旦您找到了消息传递魔法发生的函数,您就可以像这样发送自己的事件 Mage::dispatchEvent('user_me

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

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


谢谢

您可以添加事件观察员。您在某个地方有处理用户发送的消息的代码。很抱歉,我不能说得更具体,但听起来该网站有一个定制的模块,所以我不能告诉你去哪里找

一旦您找到了消息传递魔法发生的函数,您就可以像这样发送自己的事件

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>
<?php
class Packagename_Modulename_Model_Observer {
  public function sendEmailNotification($observer) {
    // add emailing functionality
  }

独生子女
包装名称模块名称模型观察者
发送电子邮件通知
如果已经有一个事件标记,您可以添加到它,而不是制作第二个“之后发送的用户消息”不是默认的Magento事件。我编的名字,你可以使用任何其他名字,只要它与你在dispatchEvent调用中使用的名字相同

定义电子邮件模板。在app\locale\yourlanguage\u yourcountrycode\template\email\文件夹中,添加一个名为message\u notification的文件

Hi {{var name}},<br>
{{var sender}} has sent you a message!<br>
Bye
Hi{{var name},
{{var sender}}已向您发送消息
拜伊
接下来,最后添加实际的观察者。在自定义模块中找到model文件夹,并添加一个名为Observer.php的文件。在这个文件中,您添加了如下内容

<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>
<?php
class Packagename_Modulename_Model_Observer {
  public function sendEmailNotification($observer) {
    // add emailing functionality
  }

令人惊讶的是,除了这一点之外,一切都很好——如果你刚刚购买了该网站,那么你可能只是将其移动到了另一台服务器上。我会先检查服务器,而不是修改你的magento安装。公司购买了一个克隆脚本。他们让我做一些改变。我们给脚本的创建者apptha发了电子邮件,询问他们是否愿意为我们实现这一点,但他们说这需要成本。明天我将尝试实现Pixelkracht的解决方案。我无法让它工作,尽管我认为我遵循了您列出的所有步骤。我们最终会付钱给其他人去做。不是世界末日。无论如何,谢谢你的回答。