0

我有一个联系表格,提交后,它会发送一封电子邮件并将数据添加到数据库中作为备份。

在测试我的电子邮件时,我实际上是通过 (woo) 获得了 html 电子邮件,但正在填写的变量据说没有在视图中定义——我错过了什么?

控制器

表单验证在这里----

如果错误这样做......

如果成功...

// 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 回答