Magento 1.7 Email Templates – Fix Core Email Template Mailer Not Sending

emailemail-templatesmagento-1.7

i have create a email template for a custom module.

For that case it have using core/email_template_mailer ( Mage::getModel('core/email_template_mailer');) and also it has html template
.But it is not working;

Here define template html in 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>

And Mail send code is

$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('amit@gmail.com');
        $mailer->setStoreId(1);
        $mailer->setTemplateId('vendor_create_account_email_template');
        $mailer->setTemplateParams(array('vendor' => $vednor));
        $mailer->send();

And code of vendor_account_new.html is

<!--@subject Welcome, {{var vendor.name}}! @-->
<!--@vars
{"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"}
@-->

<!--@styles
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>

Can any one tell me,what are the issue…

Best Answer

There are issue with parameters send in function setSender

Step1:get current store id

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

After that Step2:Sender() send parameters in Sender() in array format kust like array('email'=>(string) $senderemail,'name'=> (string)'$sendername);

Details of code

 $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) 'dev.amitbera@gmail.com','name'=> (string)'Bal ta'));
                $mailer->setStoreId($storeId);
                $mailer->setTemplateId((string) 'vendor_account_create_template');
                $mailer->setTemplateParams(array('vendor'=>$Vendor));
                $mailer->send();
Related Topic