CodeIgniter PHP邮件功能不起作用

时间:2010-10-13 20:49:15

标签: php codeigniter

我有一个脚本,可以通过联系页面向我自己发送电子邮件:

if($_POST["submit"] == "Send Message")
{
    $to = "myemail@mm.com";
    $subject = "Message received from Contact Us";
    $message = "Email: ".$_POST["email"]."<br>";
    $message .= "Name: ".$_POST["name"]."<br>";
    $message .= "Message: ".$_POST["message"]."<br>";
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
    echo mail($to,$subject,$message,$headers);
    $messageSent = TRUE;
}

它确实回应1.但我没有在我的电子邮件帐户(gmail)中收到任何电子邮件。我正在使用Codeigniter我看到有一个电子邮件库,但这不应该工作吗?

我有几个其他类似的表单,如果我已经有普通的PHP,我真的不想整合这个库。

我知道我的服务器能够发送电子邮件,因为我之前已经完成了,我觉得这是与codeigniter相关的。如果没有其他选项,我想我可以使用该库并更改代码。对此有任何建议会有所帮助!谢谢:))

2 个答案:

答案 0 :(得分:2)

由于您没有使用任何CI功能,因此它与CI无关。

你是不是〜使用电子邮件助手?

CI中的

$this->load->library('form_validation');

$this->form_validation->set_rules('name', 'Name', 'trim|required');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('message', 'Message', 'required');

if($this->form_validation->run() == FALSE)
{
    $this->load->view('contact-form');
}
else
{
    $this->load->library('email');

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

    $this->email->from($email, $name);
    $this->email->to('you@domain.com');

    $this->email->subject('Subject');
    $this->email->message($message);
    if($this->email->send())
    {
        echo $this->email->print_debugger();
        //redirect('contact-us/thanks', 'location');
    }
   else
   {
    echo 'Something went wrong...';
   }

}

还要注意邮件返回true / false取决于php是否能够发送它。没有办法告诉消息是否曾被收到过。

在CI中尝试 - 看看结果是否有任何差异

答案 1 :(得分:0)

Codeigniter不能对你的问题负责,因为mail()是一个php函数,除了在包含php源文件之前的一些花哨的字符串预处理之外不能被覆盖。