CodeIgniter PHP邮件函数不工作
我有一个脚本,可以从联系人页面向自己发送电子邮件:CodeIgniter PHP邮件函数不工作,php,codeigniter,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&g
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;
}
if($\u POST[“提交”]=“发送消息”)
{
$to=”myemail@mm.com";
$subject=“收到联系我们的信息”;
$message=“Email:”..$\u POST[“Email”]。“
”;
$message.=“Name:”$\u POST[“Name”]。“
”;
$message.=“message:”$\u POST[“message”]。“
”;
$headers='MIME版本:1.0'。“\r\n”;
$headers.=“内容类型:text/html;字符集=iso-8859-1”。“\r\n”;
回送邮件($to、$subject、$message、$headers);
$messageSent=TRUE;
}
它实际上与1相呼应。但我的电子邮件帐户(gmail)中没有收到任何电子邮件。我正在使用Codeigniter,我看到有一个电子邮件库,但这应该可以工作,不是吗
我有一些其他类似的表单,如果我已经有了普通的PHP,我真的不想集成这个库
我知道我的服务器能够发送电子邮件,因为我以前做过,我觉得这与codeigniter有关。如果没有其他选项,我想我可以使用库并更改代码。任何关于这方面的建议都会有帮助!谢谢:)Codeigniter不能为您的问题负责,因为mail()是一个php函数,除非在包含php源文件之前进行一些奇特的字符串预处理,否则无法覆盖它。它与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中尝试-查看结果是否有任何差异尝试只做
\n
而不是\r\n
。我相信PHP会被这一点弄糊涂。这是一个很好的观点——尽管从快速的google判断这似乎是一个老问题,但不能说我自己也曾经历过这种情况,尽管我认为var_dump(mail($to,$subject,$message,$headers));如果它说是真的,那么邮件会将你的电子邮件发送到发送服务器,问题要么出现在你的邮件头上,要么出现在谷歌邮箱上。顺便问一句,你会对没有直接给你支持和完整解决方案的每一个答案投反对票吗?:)我问了一个问题,我想得到一个答案我同意皮特的观点。您的回答只是一个注释,因此应该是对问题的回答。感谢您的时间,我将尝试此方法。您还需要表单验证帮助程序,我在原始代码中省略了此内容。请参阅已编辑的版本不要使用CI帮助器,请参阅: