Мне нужно слать письма-уведомления пользователям (письма не text/plain, а text/html). Хотелось бы иметь для каждого шаблонного письма, свое представление (view) и делать что-то вроде:
Есть ли такая возможность?
Да. Для этого можно использовать метод renderPartial c указанием параметра return(true). Код будет выглядеть вот так:
$body = Yii::app()->controller->renderPartial('hello_mail_view', array('param'=>'value'), true);
mail($email, $subject, $body, $headers);
Рекомендую ознакомиться с официальной документацией по теме:
CController#renderPartial-detailТак же дополнительный вопрос. Для отправки писем я создал класс в папке components и в контроллерах, где происходит некое событие, используя этот компонент, шлю письмо пользователю. Насколько данное решение оптимальное с точки зрения концепции MVC? Возможно есть другие решения, подскажите.
Вполне нормальное решение. Можете оформить в виде экстеншена.
Я бы рекомендовал воспользоваться уже существующими расширениями для отправки почты, чем придумывать свой "велосипедик".