2015-02-01 5 views
0

Теперь я реализую функциональность, которая позволяет отправлять системные электронные письма пользователям, зарегистрированным в моем проекте Yii 1.1.Лучшее приложение для хранения шаблонов электронной почты в Yii

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

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

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

ответ

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, чтобы заполнить недостающие части.

Смежные вопросы