我有一个脚本,可以通过联系页面向我自己发送电子邮件:
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相关的。如果没有其他选项,我想我可以使用该库并更改代码。对此有任何建议会有所帮助!谢谢:))
答案 0 :(得分:2)
你是不是〜使用电子邮件助手?
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源文件之前的一些花哨的字符串预处理之外不能被覆盖。