2016-04-12 4 views
1

Я хочу отправить письмо с помощью шаблона. Я пробовал этот код, но он дает эту ошибку.Как отправить письмо с помощью шаблона в Codeigniter

Серьезность: 4096 Сообщение: Объект класса CI_Loader не может быть преобразован в строку

Мой код:

public function email_submit_change_password(){ 
    $this->load->library('email'); 
    $email = $this->input->post('email'); 

    $check = $this->db->query("SELECT * FROM tbl_profile_main WHERE connect_to_email='".$email."';"); 
    if($check->result()!=NULL){ 
     $test = $this->load->view('includes/test'); 
     $this->email->from('[email protected]', 'Your Name'); 
     $this->email->to($email); 
     $this->email->subject('Password Reset'); 
     $this->email->message($test); 
     if($this->email->send()){ 
     $this->db->query("UPDATE tbl_profile_main SET token_='".$token."' WHERE connect_to_email='".$email."';"); 
     $this->session->set_userdata('email_send','success'); 
     return 1; 
     // return 5; 
    } 
    }else{ 
     $this->session->set_userdata('email_incorrect','error'); 
     return 0; 
    } 
} 
+1

любой номер строки, указанный по ошибке? Я также вижу '$ test = $ this-> load-> view ('includes/test', '', true);' он вернет html в '$ test' вместо добавления к ответу. – jagad89

+0

это сработало, но вся веб-страница не отображается в тексте только по почте, а ссылки отображаются. (CSS Stylings не отображается). –

+0

вам нужно использовать встроенный css для отправки по электронной почте. Электронная почта не разрешает загрузку css, как в обычном html. для получения дополнительной помощи вы должны разместить свой файл 'includes/test.php'. – jagad89

ответ

0

должно быть проверить так:

<?php 
$check = $this->db->query("SELECT * FROM tbl_profile_main WHERE connect_to_email='".$email."';"); 
if($check->num_rows() > 0) { // check data exists or not 
    $r = $check->result_array(); 
    if(!empty($r)) { 
     // send email process 
    } else { 
     $this->session->set_userdata('email_incorrect','error'); 
     return 0; 
    } 
} 
?> 
+0

спасибо за головокруки –

+0

это сработало ??? –

1

Если вы хотите вернуть представление в виде строки, вы должны загрузить его следующим образом:

$test = $this->load->view('includes/test', '', true); 
+0

это сработало, но вся веб-страница не отображается в тексте только по почте, а ссылки отображаются. (CSS Stylings не отображается). –

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