开发者

Magento mailing feature in custom script

I have created a custom script to import a bulk number of customers to magento database. What client needed is for each 100 customers import they needed a mail about whats going on and status of the importing开发者_运维百科.

So how can i use the magento mailing functionality so that i can create a template to send mail as like magento does. Please help me


I think you're looking for something along the following lines:

$store_id = $this->getStoreId();
$template = "import_script_email_template_name";

$from =  Mage::getStoreConfig(self::XML_PATH_EMAIL_IDENTITY, $store_id);
$to = array( "name" => "Nick", "email" => "the@email.address" );

$template_variables = array(
    "var1" => "somevalue",
    "var2" => "someothervalue"
);


$mail = Mage::getModel("core/email_template");
$mail->setDesignConfig( array( "area" => "frontend", "store" => $store_id ))
     ->sendTransactional(
         $template_name,
         $from,
         $to["email"],
         $to["name"],
         $template_variables
     );

Note: This was lifted from Mage_Sales_Model_Order::sendNewOrderEmail() and hasn't been tested, but it should be more than enough to get you started. Treat it as pseudo-code :)


If you are just doing this from an import script, the PHP mail function should be more than sufficient.


Also can do the mailing functionality of ZEND

Here is the code

$mail_body = "<h3> These are ordered by you in the event - '".$customer_event."' </h3> <br/>".  $email_body;        
        $to_email = $email;
        $to_name  = $customer_name;
        $subject  = 'Orders';
        $Body     = $body;
        $sender_email = "info@mail.com";
        $sender_name  = "mail";


        $html = new Zend_View();
        $html->setScriptPath('app/locale/en_US/template/email/');

        $html->assign('customer_name', $customer_name);
        $html->assign('email', $to_email);
        $html->assign('password', $password);
        $html->assign('site_url', Mage::getUrl(""));
        $html->assign('site_skin_url', Mage::getDesign()->getSkinUrl("images/"));
        $html->assign('site_order_url', Mage::getUrl("").'Event.php?id='.$id.'&cart_id='.$cart_id);
        $html->assign('site_name', 'Winecellarage');
        $html->assign('site_data', $mail_body);

        $Body_text= $html->render($template);
        $mail = new Zend_Mail('utf-8');     
        $mail->setBodyHtml($Body_text); 
        $mail->setFrom($sender_email, $sender_name);
        $mail->addTo($to_email, $to_name);
        //$mail->addCc($cc, $ccname);   
        //$mail->addBCc($bcc, $bccname);  
        $mail->setSubject($subject);
        try {
              if($mail->send())
              {
                $msg .= "<p>Mail sent successfully to '$to_email' </p>";
              }
        }
        catch(Exception $ex) {
                $err .= '<p>'.$error_msg = $ex->getMessage()."</p>";
        }       

This one is working exactly what i wanted. So may be useful to some one.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜