这必须很简单,我正在尝试使用CodeIgniter将视图文件作为我的电子邮件加载。关键是要有一个HTML而不仅仅是一个基于文本的消息。
目前,我的电子邮件发送正常,但如果我的代码看起来像下面那样,则消息为空:
这是php的相关部分:
$config=array(
'protocol' => 'smtp',
'smtp_host' => 'xxx',
'smtp_user' => 'xxx',
'smtp_pass' => 'xxx',
'smtp_port' => 587,
'mailtype' => 'html',
'crlf' => "\r\n",
'newline' => "\r\n"
);
$this->email->initialize($config);
$this->email->subject('testing loading a view file');
$msg = $this->load->view('reviews/email', '', false);
$this->email->message($msg);
以下是reviews / email.php文件的内容:
<html>
<head></head>
<body> <h1>this should be BIG</h1> this should not
<a href="http://google.com/<? $php='login'; echo $php?>">Google</a>
</body>
</html>
感谢你提出任何建议,
添
答案 0 :(得分:3)
您正在正确加载视图。第三个参数应该是TRUE
,以便CodeIgniter将视图作为字符串返回。
$msg = $this->load->view('reviews/email', '', true);
来自http://codeigniter.com/user_guide/general/views.html:
有第三个可选参数可让您更改行为 该函数使它以字符串形式返回数据而不是发送 它到你的浏览器。如果要处理数据,这可能很有用 某种程度上来说。如果将参数设置为true(布尔值),它将返回 数据。默认行为为false,将其发送到您的浏览器。 如果要返回数据,请记住将其分配给变量:
$string = $this->load->view('myfile', '', true);