2017-01-03 4 views
1

У меня есть проект codeigniter, через который я хочу отправить электронные письма пользователю. Я хочу отправить шаблоны с эффектом HTML-кода, однако внутри письма я получаю html кода вместо представления. Может кто-нибудь, пожалуйста, как сделать такНе удалось отправить представление/шаблон по электронной почте в codeigniter

код, который я использую это

Посмотреть

<?php echo form_open('home/forgot_pass'); ?> 
    <div class="form-group"> 
     <?php 
      $data = array(
       'type'=>'text', 
       'class' => "form-control", 
       'name'=>'email', 
       'autocomplete'=>'off', 
       'placeholder'=>'Email' 
       ); 
      ?> 
     <?php echo form_input($data); ?> 
    </div> 

    <div class="form-group"> 
     <?php 
      $data = array(
       'type'=>'submit', 
       'class'=>'btn btn-success btn-block', 
       'name'=>'submit', 
       'content'=>'Login' 
      ); 

      echo form_button($data); 
     ?> 
    </div> 
<?php echo form_close(); ?> 

Контроллер

public function forgot_pass() 
    { 
     $this->user_model->forgot_pass(); 

    } 

Модель

public function forgot_pass() 
    { 
     $email = $this->input->post('email'); 
     $this->db->where('email',$email); 
     $query = $this->db->get('users'); 
     $result = $query->row(); 

     if($result) 
      { 
       $password = $result->password; 

       $from_email = "[email protected]"; 

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

       $this->email->from($from_email, 'ABC'); 
       $data = array(
       'password'=> $password 
       ); 

       $this->email->to($email); 
       $this->email->subject('Forgot Password'); 

       $body = $this->load->view('users/forgot_password_email',$data,TRUE); 
       $this->email->message($body); 
       $this->email->send(); 

      } 

    } 

Может кто-нибудь сказать, как отправить шаблон по электронной почте через CodeIgniter

forgot_password_email зрения

<!doctype html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 

</head> 
<body> 

    <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation" style="padding: 8px;"> 

     <span style="color:white;text-align:center;margin-left: 45%;font-size: 20px;font-weight: 600;">LITEHIRES</span> 

    </nav> 

    <div class="container" style="margin-left: 25%; margin-top: 4%;"> 
     <p style="font-weight: 600; font-size: 18px;">Hi Samya</p> 

      <p> You have recently requested for a password on your litehires account. Please use the following password for your account</p> 
      <p style=" margin-left: 25%; color: #3498db; font-size: 16px; "><?php echo $password; ?></p> 

      <p>Thanks</p> 
      <p style=" margin-top: -10px; ">Litehires Team</p> 

    </div> 

</body> 
</html> 

ответ

2

Существует третий необязательный параметр позволяет изменить поведение функции так, что она возвращает данные в виде строки, а не отправлять его в браузере. Это может быть полезно, если вы хотите каким-то образом обработать данные. Если вы установите для параметра значение true (boolean), он вернет данные. По умолчанию используется значение false, которое отправляет его в ваш браузер. Не забудьте присвоить его переменной, если вы хотите, возвращаемые данные:

Смените

$body = $this->load->view('users/forgot_password_email'); 

Для

$body = $this->load->view('users/forgot_password_email','',true); 

МОДЕЛЬ

public function forgot_pass() 
    { 
     $from_email = "[email protected]"; 
     $to_email = trim($this->input->post('email')); //use trim to removes spaces from both sides 
     $config['mailtype'] = 'html'; 
     $this->load->library('email',$config); 

     $this->email->from($from_email, 'Your Name'); 
     $this->email->to($to_email); 
     $this->email->subject('Email Test'); 
     $data['name'] = 'name here'; //post from from 
     $data['password'] = 'password'; //new generated password here 
     $body = $this->load->view('users/forgot_password_email',$data,true); 
     $this->email->message($body); 
     $this->email->send() 

    } 

Для более https://codeigniter.com/user_guide/general/views.html#returning-views-as-data

+0

он работал, но он отображает код html, а не страницу – user3732711

+0

, он берет ваш код страницы в виде строки. –

+0

так как я могу отобразить электронную почту в соответствующем формате – user3732711

0
$body = $this->load->view('users/forgot_password_email' ,true); 

это преобразует представление в строку.

+0

это не сработало. Все те же – user3732711

+0

$ body = $ this-> load-> view ('users/forget_password_email', '', true); –

Смежные вопросы