2014-04-24 72 views
-1

我爲自定義模塊創建了一個電子郵件模板。Magento核心/ email_template_mailer不發送自定義模塊的郵件

對於這種情況,它使用core/email_template_mailerMage::getModel('core/email_template_mailer');),它也有html模板。但它不工作;

這裏定義的config.xml

<template> 
      <email> 
       <vendor_create_account_email_template translate="label" module="vendor"> 
        <label>New account</label> 
        <file>vendor_account_new.html</file> 
        <type>html</type> 
       </vendor_create_account_email_template> 
      </email> 
    </template> 

喜愛

HTML模板我已創建自定義模塊一個電子郵件模板。

對於這種情況,它有使用核心/ email_template_mailer(法師:: getModel('核心/ email_template_mailer');),它也有HTML模板。但它不工作;

這裏定義config.xml中的模板HTML

新帳戶 vendor_account_new.html HTML

和郵件發送代碼

$vednor=Mage::getModel('vendor/vendor')->load(66); 
    /** @var $mailer Mage_Core_Model_Email_Template_Mailer */ 
      $mailer = Mage::getModel('core/email_template_mailer'); 
      $emailInfo = Mage::getModel('core/email_info'); 
      $emailInfo->addTo($vednor->getEmail(), $vednor->getName()); 
      $mailer->addEmailInfo($emailInfo); 

      // Set all required params and send emails 
      $mailer->setSender('[email protected]'); 
      $mailer->setStoreId(1); 
      $mailer->setTemplateId('vendor_create_account_email_template'); 
      $mailer->setTemplateParams(array('vendor' => $vednor)); 
      $mailer->send(); 

而且在vendor_account_new.html代碼

<[email protected] Welcome, {{var vendor.name}}! @--> 
<[email protected] 
{"store url=\"\"":"Store Url", 
"var logo_url":"Email Logo Image Url", 
"htmlescape var=vendor.name":"Customer Name", 
"store url=\"customer/account/\"":"Customer Account Url", 
"var vendor.email":"Customer Email", 
"htmlescape var=$customer.password":"Customer Password"} 
@--> 

<[email protected] 
body,td { color:#2f2f2f; font:11px/1.35em Verdana, Arial, Helvetica, sans-serif; } 
@--> 

<body style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;"> 
<div style="background:#F6F6F6; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; margin:0; padding:0;"> 
<table cellspacing="0" cellpadding="0" border="0" height="100%" width="100%"> 
     <tr> 
      <td align="center" valign="top" style="padding:20px 0 20px 0"> 
       <!-- [ header starts here] --> 
       <table bgcolor="FFFFFF" cellspacing="0" cellpadding="10" border="0" width="650" style="border:1px solid #E0E0E0;"> 
        <tr> 
         <td valign="top"> 
          <a href="{{store url=""}}"><img src="{{var logo_url}}" alt="{{var logo_alt}}" style="margin-bottom:10px;" border="0"/></a></td> 
        </tr> 
       <!-- [ middle starts here] --> 
        <tr> 
         <td valign="top"> 
          <h1 style="font-size:22px; font-weight:normal; line-height:22px; margin:0 0 11px 0;"">Dear {{htmlescape var=$vendor.name}},</h1> 
          <p style="font-size:12px; line-height:16px; margin:0 0 16px 0;">Welcome to {{var store.getFrontendName()}}. To log in when visiting our site just click <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">Login</a> or <a href="{{store url="customer/account/"}}" style="color:#1E7EC8;">My Account</a> at the top of every page, and then enter your e-mail address and password.</p> 
          <p style="border:1px solid #E0E0E0; font-size:12px; line-height:16px; margin:0; padding:13px 18px; background:#f9f9f9;"> 
           Use the following values when prompted to log in:<br/> 
           <strong>E-mail</strong>: {{var vendor.email}}<br/> 
           <strong>Password</strong>: {{htmlescape var=$vendor.password}}<p> 
          <p style="font-size:12px; line-height:16px; margin:0 0 8px 0;">When you log in to your account, you will be able to do the following:</p> 
          <ul style="font-size:12px; line-height:16px; margin:0 0 16px 0; padding:0;"> 
           <li style="list-style:none inside; padding:0 0 0 10px;">&ndash; Proceed through checkout faster when making a purchase</li> 
           <li style="list-style:none inside; padding:0 0 0 10px;">&ndash; Check the status of orders</li> 
           <li style="list-style:none inside; padding:0 0 0 10px;">&ndash; View past orders</li> 
           <li style="list-style:none inside; padding:0 0 0 10px;">&ndash; Make changes to your account information</li> 
           <li style="list-style:none inside; padding:0 0 0 10px;">&ndash; Change your password</li> 
           <li style="list-style:none inside; padding:0 0 0 10px;">&ndash; Store alternative addresses (for shipping to multiple family members and friends!)</li> 
          </ul> 
          <p style="font-size:12px; line-height:16px; margin:0;">If you have any questions about your account or any other matter, please feel free to contact us at <a href="mailto:{{config path='trans_email/ident_support/email'}}" style="color:#1E7EC8;">{{config path='trans_email/ident_support/email'}}</a> or by phone at {{config path='general/store_information/phone'}}.</p> 
         </td> 
        </tr> 
        <tr> 
         <td bgcolor="#EAEAEA" align="center" style="background:#EAEAEA; text-align:center;"><center><p style="font-size:12px; margin:0;">Thank you again, <strong>{{var store.getFrontendName()}}</strong></p></center></td> 
        </tr> 
       </table> 
      </td> 
     </tr> 
    </table> 
</div> 
</body> 

任何一個可以告訴我,有什麼問題...

回答

0

經過長時間的代碼爭鬥,我得到它solution。主要問題是code format and it variable system format

這裏的代碼和步驟:

第一步:獲取當前店鋪ID。

$storeId=Mage::app()->getStore()->getId(); 

第二步:Sender() parameters應在陣列格式array('email'=>(string) $senderemail,'name'=> (string)'$sendername); ....

的完整代碼

$storeId=Mage::app()->getStore()->getId(); 
$Vendor=Mage::getModel('vendor/vendor')->load(57); 

    /** @var $mailer Mage_Core_Model_Email_Template_Mailer */ 
      $mailer = Mage::getModel('core/email_template_mailer'); 
      $emailInfo = Mage::getModel('core/email_info'); 
      $emailInfo->addTo((string)$Vendor->getEmail(),(string) $Vendor->getName()); 
      $mailer->addEmailInfo($emailInfo); 
     // Set all required params and send emails 
      $mailer->setSender(array('email'=>(string) '[email protected]','name'=> (string)'Bal ta')); 
      $mailer->setStoreId($storeId); 
      $mailer->setTemplateId((string) 'vendor_account_create_template'); 
      $mailer->setTemplateParams(array('vendor'=>$Vendor)); 
      $mailer->send(); 
1

使用這個..

爲​​3210

<template> 
      <email> 
       <custom_payment module="paymentlink"> 
        <label>Payment Link</label> 
        <file>custom_payment.html</file> <!-- this specifies the path where the custom template is located --> 
        <type>html</type> 
       </custom_payment> 
      </email> 
     </template> 

controller

try{ 
//load the custom template to the email 
    $emailTemplate = Mage::getModel('core/email_template')->loadDefault('custom_payment'); 
// it depends on the template variables 
    $emailTemplateVariables = array(); 
    $emailTemplateVariables['order_id'] = $data['order']; 
    $emailTemplateVariables['logo_url'] = $logo; 
    $emailTemplateVariables['customer_name'] = $firstname; 
    $emailTemplateVariables['customer_info'] = $firstname.' '.$lastname; 
    $emailTemplateVariables['shipment_url'] = $data['link']; 
    $emailTemplateVariables['store_name'] = Mage::app()->getStore()->getName(); 

    $emailTemplate->setSenderName($senderName); 
    $emailTemplate->setSenderEmail($senderEmail); 
    $emailTemplate->setType('html'); 
    $emailTemplate->setTemplateSubject($firstname.' you forgot to choose shipping options for your product'); 
    $emailTemplate->send($data['email'], $firstname . $lastname, $emailTemplateVariables); 
    $linker = mysql_real_escape_string(base64_encode($data['link'])); //print_r($linker);exit; 
    $model = Mage::getModel('paymentlink/paymentlink') 
    ->setRelatedOrderid($data['order']) 
    ->setCustEmail($data['email']) 
    ->setPrice($data['price']) 
    ->setReceived(0) 
    ->setLink($linker) 
    ->setLinkId($data['key']) 
    ->save(); 
Mage::getSingleton('adminhtml/session')->addSuccess("Link has been Generated successfully & Email has been sent ! </br>".$data['link'].""); 
    } 
    catch (Exception $e) { 
     $errorMessage = $e->getMessage(); 
     Mage::getSingleton('adminhtml/session')->addError("We cannot send generated link . There must be some error occurs."); 
     return $errorMessage; 
    } 
+0

kingshuk,我KHOW這個thing.but,我想用核發送郵件/ email_template_mailer。 –

+0

你爲什麼要堅持core_template_mailer?是否有任何具體的原因..BTW FYI我也使用自定義模塊這裏是自定義的電子郵件模板,這也是HTML。 –

+0

Magento有使用該功能。爲什麼我不能使用它? –

相關問題