Используйте шаблон электронной почты из плагина CakePHP - PullRequest
5 голосов
/ 16 мая 2011

У меня есть CakePHP Shell Script, который отправляет электронное письмо.Этот сценарий содержится в плагине CakePHP (foo).

Установка шаблона электронной почты как

$this->Email->template = "foo/email_template_name";

Не работает, электронная почта отправляется успешно, однако электронная почта просто говорит

Not Found: /path_to_app/app/views/elements/email/html/foo/email_template_name.ctp

Я убедился, что шаблон назван правильно и существует.

Незначительные примечания:

$this->Email->sendAs = "both";

Если шаблон перемещен в /path_to_app/app/views/elements/email/html/foo/email_template_name.ctp, он работает правильно.Однако я надеялся доставить это как можно больше, чем отдельное письмо, включая шаблоны в самом плагине.

Ответы [ 4 ]

4 голосов
/ 02 января 2012

Вам необходимо сообщить CakeEmail имя плагина. (Торт 2.0.x)

В вашей модели

$email = new CakeEmail();
$email->template('Foo.email_template_name');

или контроллер

$this->email->template('Foo.email_template_name');

Вам необходимо создать представления для электронной почты:

Plugin/Foo/View/Emails/html/email_template_name.ctp
Plugin/Foo/View/Emails/text/email_template_name.ctp
1 голос
/ 30 мая 2011

Проверьте свой путь снова!

Я столкнулся с той же проблемой и понял, что разместил свой шаблон по адресу: /path_to_app/app/plugins/my_plugin_name/views/elements/email/my_template.ctp

Но правильный путь: /path_to_app/app/plugins/my_plugin_name/views/elements/email/html/my_template.ctp

Поскольку я использую значение html в качестве «sendAs» на моем контроллере

$this->Email->sendAs = 'html';

1 голос
/ 24 октября 2011

Просто эта функция не реализована в cakephp 1.3.Вы получите его в свежем выпуске cakephp 2.0.0 http://bakery.cakephp.org/articles/lorenzo/2011/10/16/cakephp_2_0_released

, так как ошибка была исправлена: http://cakephp.lighthouseapp.com/projects/42648/tickets/1743-cakeemail-in-plugins-doesnt-work-well-with-views

Вы можете в конечном итоге попросить или предоставить бэкпорт в 1.3Я не знаю стратегию и допуски в CakePHP.

1 голос
/ 17 мая 2011

Пожалуйста, отправьте весь свой код для $ this-> Email.

Проверьте:

$this->Email->sendAs = 'html';

Вы пробовали

$this->Email->template = "email_template_name";

и переместите шаблон в

/path_to_app/app/views/elements/email/html/email_template_name.ctp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...