2016-04-12 5 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)も見つけます;' responseに追加する代わりに '$ test'でhtmlを返します。 – jagad89

+0

それは働いたが、全体のウェブページはメールに表示されず、テキストのみが表示され、リンクが表示されます。 (CSSスタイルは表示されません)。 –

+0

電子メールにはインラインCSSを使用する必要があります。電子メールは通常のhtmlのようにCSSの読み込みを許可していません。さらに '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スタイルは表示されません)。 –

関連する問題