не удается отправить электронное письмо с шаблоном электронной почты
$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
5
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