如何使用codeigniter中的View发送包含内容的电子邮件

ims*_*med 6 php codeigniter

我想从我的应用程序向用户发送一封电子邮件,其中包含从视图中加载的电子邮件的内容 .这是我到目前为止尝试过的代码:

$toemail = "user@email.id";

$subject = "Mail Subject is here";
$mesg = $this->load->view('template/email');

$this->load->library('email');

$config['charset'] = 'utf-8';
$config['wordwrap'] = TRUE;
$config['mailtype'] = 'html';

$this->email->initialize($config);

$this->email->to($toemail);
$this->email->from($fromemail, "Title");
$this->email->subject($subject);
$this->email->message($mesg);
$mail = $this->email->send();
Run Code Online (Sandbox Code Playgroud)

Nir*_*jan 18

  1. 您还需要$this->load->library('email');在控制器内 调用CI中的电子邮件才能工作.
  2. 此外,在您的代码中: $fromemail未初始化.
  3. 您需要在服务器上具有SMTP支持.
  4. 分配值和键之前,应将$ config声明为数组.

工作守则:

$this->load->library('email');
$fromemail="ad@c.com";
$toemail = "user@email.id";
$subject = "Mail Subject is here";
$data=array();
// $mesg = $this->load->view('template/email',$data,true);
// or
$mesg = $this->load->view('template/email','',true);


$config=array(
'charset'=>'utf-8',
'wordwrap'=> TRUE,
'mailtype' => 'html'
);

$this->email->initialize($config);

$this->email->to($toemail);
$this->email->from($fromemail, "Title");
$this->email->subject($subject);
$this->email->message($mesg);
$mail = $this->email->send();
Run Code Online (Sandbox Code Playgroud)

编辑: $mesg = $this->load->view('template/email',true);应该是由lycanian指出的真实.通过将其设置为true,它不会将数据发送到输出流,但会以字符串形式返回.

编辑: $this->load->view();需要第二个参数与数据或空相似$mesg = $this->load->view(view,data,true);,如果不是它不会工作

  • 这是有效的:$ mesg = $ this-> load-> view('payment/step1','',TRUE); (3认同)

小智 8

这行$ mesg = $ this-> load-> view('template/email',true); 应该像这样
$ mesg = $ this-> load-> view('template/email','',true);
在值为true之前使用单引号,它将完美地工作