не удается отправить электронное письмо с шаблоном электронной почты


  $emailTemplate  = Mage::getModel('core/email_template')
                        ->loadDefault('test_template');                                    


$emailTemplateVariables = array();
 $emailTemplateVariables['test'] = 'Branko';
 $emailTemplateVariables['name'] = 'Ajzele';
 $emailTemplateVariables['reviewurl'] = Mage::getUrl('test/index/review');

echo $processedTemplate = $emailTemplate->getProcessedTemplate($emailTemplateVariables);

$emailTemplate->send('[email protected]','John Doe', $emailTemplateVariables);

Вывод echo

It is time to review Branko

Hi Ajzele

Click this Make a Review


error


2015-06-17T10:17:10+00:00 ERR (3): 
exception 'Exception' with message 'This letter cannot be sent.' in /var/www/servicecenters/app/code/local/Aschroder/SMTPPro/Model/Email/Template.php:40
Author: Qaisar Satti, 2015-06-17

2 answers

Попробуйте это:

Итак, проблема заключалась в следующем: !Mage::getStoreConfigFlag('system/smtp/disable'), который вы можете исправить в Admin > System > Configuration > Advanced > System > Mail Sending Settings и изменить Disable Email Communications на No, чтобы электронные письма НЕ были отключены .

Объяснение

Посмотрите на /app/code/core/Mage/Core/Model/Email/Template.php.Код, вызывающий эту ошибку, выглядит следующим образом:

if (!$this->isValidForSend()) {
    Mage::logException(new Exception('This letter cannot be sent.')); // translation is intentionally omitted
    return false;
}

Посмотрите на isValidForSend():

public function isValidForSend()
{
    return !Mage::getStoreConfigFlag('system/smtp/disable')
        && $this->getSenderName()
        && $this->getSenderEmail()
        && $this->getTemplateSubject();
}

Дополнительная информация.

 7
Author: Adarsh Khatri, 2019-10-15 14:53:15

Для меня проблема заключалась в том, что я определил пользовательский шаблон электронной почты с помощью config.xml моего собственного модуля и забыл установить блок комментариев с темой и так далее.

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

<!--@styles
@-->
 3
Author: Marcel Lange, 2016-07-06 17:26:49