在自定义电子邮件magento中添加取消订阅链接

时间:2011-05-24 13:00:23

标签: magento

如何在自定义电子邮件通知中添加取消订阅链接我通过zend邮件功能发送电子邮件我在正文部分中使用此功能sending mail in magento我想添加取消订阅链接我们如何实现? 在我的电子邮件通知中,我正在使用此功能。


public function sendMail()
    {           
        $post = $this->getRequest()->getPost();     
        if ($post){
                $random=rand(1234,2343);

                $to_email = $this->getRequest()->getParam("email");
                $to_name = 'Hello User';
                $subject = ' Test Mail- CS';
                $Body="Test Mail Code : "; 

                $sender_email = "sender@sender.com";
                $sender_name = "sender name";

                $mail = new Zend_Mail(); //class for mail
                $mail->setBodyHtml($Body); //for sending message containing html code
                $mail->setFrom($sender_email, $sender_name);
                $mail->addTo($to_email, $to_name);
                //$mail->addCc($cc, $ccname);    //can set cc
                //$mail->addBCc($bcc, $bccname);    //can set bcc
                $mail->setSubject($subject);
                $msg  ='';
                try {
                      if($mail->send())
                      {
                         $msg = true;
                      }
                    }
                catch(Exception $ex) {
                        $msg = false;
                        //die("Error sending mail to $to,$error_msg");
                }
                $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($msg));
            }
    }

3 个答案:

答案 0 :(得分:5)

如果您有自定义模块,请使用以下代码:

Mage::getModel('newsletter/subscriber')->loadByEmail($email)->getUnsubscriptionLink();

<强>解释

第一部分是订户的模型。
如果您想查看模型中可用的方法,请使用以下代码:

$myModel =  Mage::getModel('newsletter/subscriber');
foreach (get_class_methods(get_class($myModel)) as $cMethod) {
    echo '<li>' . $cMethod . '</li>';
}

代码loadByEmail($email)的第二部分是获取1个特定的订户对象。 $email应该是emailaddress的字符串。

代码的最后一部分是selfexplaning方法。它将生成取消订阅的链接。这是Magento提供的一种方法。

答案 1 :(得分:4)

在我的Magento版本中,我在创建新的简报模板时默认获得以下代码:

Follow this link to unsubscribe <!-- This tag is for unsubscribe link --><a href="{{var subscriber.getUnsubscriptionLink()}}">{{var subscriber.getUnsubscriptionLink()}}</a>

我希望它适用于任何Magento版本。

答案 2 :(得分:0)

我正在使用Magento 1.9。 要在新闻稿模板中添加简报取消订阅链接,请执行以下步骤:

  1. 覆盖核心文件
  2.   

    /app/code/core/Mage/Newsletter/Model/Subscriber.php

    通过本地目录中的副本

      

    /app/code/local/Mage/Newsletter/Model/Subscriber.php

    1. 在编辑器中打开以编辑代码并启用function sendConfirmationSuccessEmail() 替换代码
    2. $email->sendTransactional(
          Mage::getStoreConfig(self::XML_PATH_SUCCESS_EMAIL_TEMPLATE),
          Mage::getStoreConfig(self::XML_PATH_SUCCESS_EMAIL_IDENTITY),
          $this->getEmail(),
          $this->getName(),
          array('subscriber'=>$this)
      );
      

      用这个

      $email->sendTransactional(
          Mage::getStoreConfig(self::XML_PATH_SUCCESS_EMAIL_TEMPLATE),
          Mage::getStoreConfig(self::XML_PATH_SUCCESS_EMAIL_IDENTITY),
          $this->getEmail(),
          $this->getName(),
          array('subscriber'=>$this, 'unsubscribe' =>$this->getUnsubscriptionLink())
      );
      
      1. 并将此代码放在您要使用取消订阅链接的电子邮件模板中:

        <a href="{{var unsubscribe}}">Unsubscribe here</a>

      2. 那就是它!

        希望这有助于某人。