0

送信するとメールが送信され、バックアップとしてデータベースにデータが追加される連絡先フォームがあります。

私の電子メールをテストするとき、私は実際に HTML 電子メールを取得します (woo) が、入力されている変数がビューで定義されていないと思われます-何が欠けていますか?

コントローラ

フォームの検証はこちら----

エラーがこれを行う場合.....

成功すれば…

// set the response as successful
                $respond['result'] = 'true';
                $respond['success_message'] = $success_message;

// set field labels
                $data['message'] = $message;
                $data['first_name'] = $first_name;
                $data['email'] = $email;

                $html_email = $this->load->view('html_email', $data, true);

                // send email notification
                    $this->load->library('email');
                    $this->email->from('email-address', 'Email-address');
                    $this->email->to('email-address-here');                     
                    $this->email->subject('subject');
                    $this->email->message($html_email);         
                    $this->email->send();

                echo $this->email->print_debugger();

                // add contact message to the database
                $this->contact_model->insert_contact_message($curr_lang, $this->input->post('first_name'), $this->input->post('email'), $this->input->post('message'));

私のHTMLメールでは、テーブルを使用して設定され、変数を次のように宣言しています。

<?=$first_name?>
<?=$email?>
<?=$message?>

スタイリングが機能しているため、それが実現していることはわかっていますが、変数だけがうまくいきません。

エラーを見ると、これはHTMLメールから得られるものです:

A PHP Error was encountered
Severity: Notice

Message: Undefined variable: message    
4

1 に答える 1

1

パーサーがありません。方法は次のとおりです。

メールを処理するコントローラーで:

function send_email()
   $this->load->library('parser');
   $this->load->library('email');

   $data = array(
      'name'  =>  $this->input->post('name'),
      'email' =>  $this->input->post('email'),
      'message' => $this->input->post('message)
   );

   $body = $this->parser->parse('path_to/email_view_template', $data, true);

   //set from, to etc.
   $this->email->message($body);
   $this->email->send();
}

電子メール構成ファイルが、プレーン テキストではなく HTML 電子メールを送信するように設定されていることを確認してください。

次に、電子メール テンプレートで、次のように変数を呼び出します。

<p>You have just received email from {name}. You can contact {name} on {email}. {name} left a message saying: {message}</p>

質問があれば教えてください。

于 2013-07-22T19:59:14.050 に答える