我现在正在实现一项功能,允许向在我的Yii 1.1项目中注册的用户发送系统电子邮件。
我是一名初学者,所以我有时需要提示,所以我有一些关于存储和检索电子邮件模板文件的实现的简单问题,这些文件将在发送系统消息时使用(例如,使用swiftMailer)。
提前致谢。如果有人可以推荐不同的做法,那也将非常感激。
答案 0 :(得分: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
一起发送,以填充缺失的部分。