Теперь я реализую функциональность, которая позволяет отправлять системные электронные письма пользователям, зарегистрированным в моем проекте Yii 1.1.
Я начинающий разработчик, поэтому мне по-прежнему нужен намек, поэтому у меня есть несколько простых вопросов о реализации хранения и получения файлов шаблонов электронной почты, которые будут использоваться при отправке системных сообщений (например, с помощью swiftMailer).
Заранее спасибо. Если кто-то может порекомендовать что-то по-другому, это также будет высоко оценено.
Письма не отличаются от других видов просмотров, только их механизм доставки отличается. Здесь, где 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
чтобы заполнить недостающие фрагменты.