Функция рассылки Magento в пользовательском скрипте

Я создал собственный скрипт для импорта большого количества клиентов в базу данных magento. Что нужно клиенту, так это то, что для каждого импорта 100 клиентов им нужно письмо о том, что происходит и статус импорта.

Итак, как я могу использовать функциональность рассылки magento, чтобы я мог создать шаблон для отправки почты, как это делает magento. Пожалуйста помогите


person Elamurugan    schedule 26.01.2011    source источник


Ответы (3)


Я думаю, вы ищете что-то вроде следующих строк:

$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" => "[email protected]" );

$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
     );

Примечание. Это взято из Mage_Sales_Model_Order::sendNewOrderEmail() и не тестировалось, но этого должно быть более чем достаточно для начала работы. Считай это псевдокодом :)

person Nick    schedule 27.01.2011

Если вы просто делаете это из скрипта импорта, функции PHP mail должно быть более чем достаточно.

person Joseph Mastey    schedule 26.01.2011
comment
Да, почтовая функция - это то, что я использую сейчас. Но после импорта отправка двух уведомлений по всей почте клиентов, поэтому я хотел бы использовать концепцию шаблонов magento. вот почему - person Elamurugan; 26.01.2011

Также может выполнять функции рассылки ZEND

Вот код

$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 = "[email protected]";
        $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>";
        }       

Этот работает именно так, как я хотел. Так что может кому пригодится.

person Elamurugan    schedule 27.01.2011