Я создаю модуль Magento, который можно использовать для отправки электронных писем в некоторых случаях на моем веб-сайте. Я следую учебному пособию от Бранко Айзеле, и все, кажется, работает нормально, пока я не попытаюсь отправить электронное письмо, где я получаю ложный ответ от функции Отправить.
Ниже приведен код, который я использую вместе с возвращенным результатом:
public function sendAction() {
/*
* Loads the html file named 'custom_email_template1.html' from
* app/locale/en_US/template/email/activecodeline_custom_email1.html
*/
$emailTemplate = Mage::getModel('core/email_template')
->loadDefault('custom_email_template1');
// var_dump(Mage::getModel('core/email_template'));
//Create an array of variables to assign to template
$emailTemplateVariables = array();
$emailTemplateVariables['myvar1'] = 'Branko';
$emailTemplateVariables['myvar2'] = 'Ajzele';
$emailTemplateVariables['myvar3'] = 'ActiveCodeline';
/**
* The best part <img src="http://inchoo.net/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley">
* Opens the activecodeline_custom_email1.html, throws in the variable array
* and returns the 'parsed' content that you can use as body of email
*/
/*
* Or you can send the email directly,
* note getProcessedTemplate is called inside send()
*/
$emailTemplate->setSenderName('my name');
$emailTemplate->setSenderEmail('example@domain.com');
$emailTemplate->setTemplateSubject('STATUS CHANGED');
var_dump($emailTemplate->send('example@domain.com'));
echo "<br>";
var_dump($emailTemplate);
exit("test");
}
var_dump, предоставляемый var_dump ($ emailTemplate); возвращает объект со всей информацией правильно, как показано ниже:
bool(false)
object(Gp_Notify_Model_Email_Template)#82 (19) { ["_templateFilter:protected"]=> NULL ["_preprocessFlag:protected"]=> bool(false) ["_mail:protected"]=> NULL ["_designConfig:protected"]=> NULL ["_emulatedDesignConfig:protected"]=> bool(false) ["_initialEnvironmentInfo:protected"]=> NULL ["_eventPrefix:protected"]=> string(13) "core_abstract" ["_eventObject:protected"]=> string(6) "object" ["_resourceName:protected"]=> string(19) "core/email_template" ["_resource:protected"]=> NULL ["_resourceCollectionName:protected"]=> string(30) "core/email_template_collection" ["_cacheTag:protected"]=> bool(false) ["_dataSaveAllowed:protected"]=> bool(true) ["_isObjectNew:protected"]=> NULL ["_data:protected"]=> array(6) { ["template_type"]=> int(2) ["template_subject"]=> string(14) "STATUS CHANGED" ["template_text"]=> string(208) "
ActiveCodeline custom email example by Branko Ajzele
Hi there {{var myvar1}} {{var myvar2}} from {{var myvar3}}. This is just some example template to test custom email module.
" ["template_id"]=> string(22) "custom_email_template1" ["sender_name"]=> string(7) "my name" ["sender_email"]=> string(15) "phil@gproxy.com" } ["_hasDataChanges:protected"]=> bool(true) ["_origData:protected"]=> NULL ["_idFieldName:protected"]=> NULL ["_isDeleted:protected"]=> bool(false) } test
Дело в том, что, хотя, кажется, все идет хорошо, функция send возвращает false, и, конечно, я никогда не получаю электронное письмо.
Есть ли что-то, что я забыл сделать, например, какая-либо конфигурация в бэкэнде или что-то еще?
---- ОБНОВЛЕНИЕ ----
После некоторого расследования я понял, что в моей установке Magento нет электронных писем, достигающих их места назначения, как я думал, поэтому я решил начать с этого.
Я уже добавил все электронные письма в бэкэнд.
Я проверил Locale (язык) и изменил его на английский / американский (который я прочитал, может быть проблемой).
Любой совет?