如何发送包含代码点火器中视图内容的电子邮件


How to send an email with content from a View in 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();
  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();

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

编辑: $this->load->view();需要第二个带有数据的参数或像$mesg = $this->load->view(view,data,true);一样为空的参数,否则它将不起作用

这一行$mesg = $this->load->view('template/email',true(; 应该是这样的
$mesg = $this->load->view('template/email','',true(;
值为 true 前的单引号,它将完美运行

电子邮件模板发送 在代码点火器中,我们需要在发送电子邮件之前放置和元标记

$this->data['data'] = $data;
$message = $this->load->view('emailer/create-account', $this->data,  TRUE);
$this->email->set_header('MIME-Version', '1.0; charset=utf-8');
$this->email->set_header('Content-type', 'text/html');
$this->email->from($email, $name);
$this->email->to('emailaddres@mail.com');
$this->email->subject($subject);
$this->email->message($message);
$this->email->send();

你会尝试一下!! 在面临许多错误后,它正在为我工作

            $subject = 'New message.';
            $config = Array(        
                'protocol' => 'sendmail',
                'smtp_host' => 'Your smtp host',
                'smtp_port' => 465,
                'smtp_user' => 'webmail',
                'smtp_pass' => 'webmail pass',
                'smtp_timeout' => '4',
                'mailtype'  => 'html', 
                'charset'   => 'utf-8',
                'wordwrap' => TRUE
            );
            $this->load->library('email', $config);
            $this->email->set_newline("'r'n");
            $this->email->set_header('MIME-Version', '1.0; charset=utf-8');
            $this->email->set_header('Content-type', 'text/html');
            $this->email->from('from mail address', 'Company name ');
            $data = array(
                 'message'=> $this->input->post('message')
                     );
            $this->email->to($toEmail);  
            $this->email->subject($subject); 
            $body = $this->load->view('email/sendmail.php',$data,TRUE);
            $this->email->message($body);   
            $this->email->send();