我如何从PHP表单发送电子邮件

时间:2015-08-03 14:38:55

标签: php ajax codeigniter email

我正在尝试将数组中的名称,电子邮件,公司,电话和国家/地区插入电子邮件中,但我得到的只是一封空电子邮件。 主题,来自所有作品,但我没有在电子邮件中收到消息。 谁能告诉我我做错了什么?

<? php
public function contact_mail() {

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

    $success = $this->data->save_contact_info($data);
    if ($success) {
        $data = array('success_message' => 'Thank you. We\'ll be in touch.');
        $this->load->view('ajax/json', array('json' => $data));

        $this->load->library('email');
        $config['mailtype'] = 'html';
        $this->email->initialize($config);
        $this->email->from("noreply@example.com", "Example Notification Service");
        $this->email->to(array('mha@example.com'));
        $this->email->subject('Contact form');
        $this->email->message($data);
        $this->email->send();

    }
    else {
        $this->load->view('ajax/error', array('error_msg' => 'Please fill out all fields.'));
    }
}
?>

1 个答案:

答案 0 :(得分:0)

更改此行:

$this->load->view('ajax/json', array('json' => $data));

到此:

$view = $this->load->view('ajax/json', array('json' => $data));

然后,通过$data发送array,而不是发送$view,这是包含数组的HTML。

此外,您使用$data获取所有POST个变量,但稍后再使用data来设置Flash消息。

我不确定你是否要覆盖$data,但最好保持变量名不同的东西。