Лучший подход для хранения шаблонов электронной почты в Yii

0

Теперь я реализую функциональность, которая позволяет отправлять системные электронные письма пользователям, зарегистрированным в моем проекте Yii 1.1.

Я начинающий разработчик, поэтому мне по-прежнему нужен намек, поэтому у меня есть несколько простых вопросов о реализации хранения и получения файлов шаблонов электронной почты, которые будут использоваться при отправке системных сообщений (например, с помощью swiftMailer).

  1. Какая папка приложения Yii лучше всего подходит для хранения HTML-шаблонов электронной почты для системных сообщений?
  2. Какому классу должна быть моя модель "Email Template", поскольку шаблоны электронной почты будут храниться в виде файлов, а модель не будет взаимодействовать с базой данных.
  3. Является ли подход (отдельный шаблон "Email Template" + сохранение файлов шаблонов электронной почты в системе) хороший для такого рода вещей?

Заранее спасибо. Если кто-то может порекомендовать что-то по-другому, это также будет высоко оценено.

Теги:
yii
email-templates

1 ответ

0

Письма не отличаются от других видов просмотров, только их механизм доставки отличается. Здесь, где Yii ожидает, что ваши шаблоны будут такими:

yii/
-- protected/
   -- views/
      -- mail/
         -- template.html

Вы можете указать шаблоны из Yii для своих писем. См. Документацию для YiiMailMessage->setBody:

/**
* Set the body of this entity, either as a string, or array of view 
* variables if a view is set, or as an instance of 
* {@link Swift_OutputByteStream}.
* 
* @param mixed the body of the message.  If a $this->view is set and this 
* is a string, this is passed to the view as $body.  If $this->view is set 
* and this is an array, the array values are passed to the view like in the 
* controller render() method
* @param string content type optional. For html, set to 'html/text'
* @param string charset optional
*/

Пример:

$message = new YiiMailMessage;
$message->view = 'main_tpl';
$message->setBody(array(
    'data' => $data,
    'user' => $user,
));
$message->subject = $subject;
$message->addTo($email);
$message->from = $from;
Yii::app()->mail->send($message);

Это готовит сообщение с шаблоном yii/protected/views/mail/main_tpl.php и отправляет его вместе с $data и $user чтобы заполнить недостающие фрагменты.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню