Codeigniter 回复电子邮件将不会发送

Codeigniter 回复电子邮件将不会发送,codeigniter,Codeigniter,我正在尝试使用codeigniter自动回复时事通讯 public function response() { $status = $this->uri->segment(3); $id = $this->uri->segment(4); $id_user = $this->uri->segment(5);

我正在尝试使用codeigniter自动回复时事通讯

     public function response() 
    {
    $status             = $this->uri->segment(3);           
    $id                 = $this->uri->segment(4);
    $id_user            = $this->uri->segment(5);

    $data['id']         = $id;
    $data['status']     = $status ;

   $this->messages_model->pending($data); <<<<update database

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

   $config['protocol']  = 'smtp';           
   $config['smtp_host']    = 'host.org';            
   $config['smtp_port'] = 'secretport';         
   $config['smtp_user'] = 'from_email@example.com';          
   $config['smtp_pass'] = 'examplepassword';        
   $config['smtp_timeout']  = '100';        
   $config['mailtype']      = 'html';         
   $config['charset']       = 'utf-8';              
   $config['newline']       = "\r\n";       

    if($status == "approved") {
    $message='your form is approved';
    redirect("/response/approved");
           }else{
    $message='your form is approved';
    redirect("/response/rejected");
       }         
         $to_email = $this->messages_model->reply($id_user);

         $this->email->initialize($config);
         $this->email->from('blablabla@email.com', 'NAME');
         $this->email->to($to_email);
         $this->email->subject('Confirmation Note'); 
         $this->email->message($message);
     }
公共功能响应()
{
$status=$this->uri->segment(3);
$id=$this->uri->segment(4);
$id\u user=$this->uri->segment(5);
$data['id']=$id;
$data['status']=$status;
$this->messages\u model->pending($data);reply($id\u user);
$this->email->initialize($config);
$this->email->from($this)blablabla@email.com","姓名",;
$this->email->to($to_email);
$this->email->subject('confirmationnote');
$this->email->message($message);
}
它正在成功更新数据库,但我的收件箱中没有电子邮件


此代码有问题吗?

您需要将重定向代码放在电子邮件部分之后

     $to_email = $this->messages_model->reply($id_user);

         $this->email->initialize($config);
         $this->email->from('blablabla@email.com', 'NAME');
         $this->email->to($to_email);
         $this->email->subject('Confirmation Note'); 
         $this->email->message($message);
         $this->email->send();
         if($status == "approved") {
              $message='your form is approved';
              redirect("/response/approved");
         }else{
              $message='your form is approved';
              redirect("/response/rejected");
         } 

您需要将重定向代码放在电子邮件部分之后

     $to_email = $this->messages_model->reply($id_user);

         $this->email->initialize($config);
         $this->email->from('blablabla@email.com', 'NAME');
         $this->email->to($to_email);
         $this->email->subject('Confirmation Note'); 
         $this->email->message($message);
         $this->email->send();
         if($status == "approved") {
              $message='your form is approved';
              redirect("/response/approved");
         }else{
              $message='your form is approved';
              redirect("/response/rejected");
         } 

如CI文档中针对重定向功能所述:

此函数将终止脚本执行

参考:

因此,首先,将重定向移动到函数的末尾

其次,设置所有电子邮件属性后,使用$this->email->send()实际发送电子邮件

参考:

第三,您的拒绝消息是错误的:)

更新评论中的问题:

 $to_email = $this->messages_model->reply($id_user);
 $this->email->initialize($config);
 $this->email->from('blablabla@email.com', 'NAME');
 $this->email->to($to_email);
 $this->email->subject('Confirmation Note'); 


if ($status == "approved") {
    $message='your form is approved';
    $this->email->message($message);
    $this->email->send();
    redirect("/response/approved");
} else {
    $message='your form is rejected';
    $this->email->message($message);
    $this->email->send();
    redirect("/response/rejected");
}         

如CI文档中针对重定向功能所述:

此函数将终止脚本执行

参考:

因此,首先,将重定向移动到函数的末尾

其次,设置所有电子邮件属性后,使用$this->email->send()实际发送电子邮件

参考:

第三,您的拒绝消息是错误的:)

更新评论中的问题:

 $to_email = $this->messages_model->reply($id_user);
 $this->email->initialize($config);
 $this->email->from('blablabla@email.com', 'NAME');
 $this->email->to($to_email);
 $this->email->subject('Confirmation Note'); 


if ($status == "approved") {
    $message='your form is approved';
    $this->email->message($message);
    $this->email->send();
    redirect("/response/approved");
} else {
    $message='your form is rejected';
    $this->email->message($message);
    $this->email->send();
    redirect("/response/rejected");
}         

所以我必须在IF函数内初始化两次?不,你可以在IF之前初始化一次,并且只在IF内放置$this->email->message($message)和$this->email->send()。在应答中添加了一个示例,所以我必须在IF函数内初始化两次?不,你可以在IF之前初始化一次,并且只将$this->email->message($message)和$this->email->send()放在IF中;必须在$this->email->message($message)之前运行;不,$message='blabla';必须在$this->email->message($message)之前运行;