0

这必须很简单,我正在尝试使用 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>

感谢您提供的任何建议,

蒂姆

4

1 回答 1

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);
于 2012-04-17T14:55:25.283 回答