PHP联系表单返回错误消息

时间:2015-06-08 18:48:13

标签: php html forms email contact

我在两个不同的服务器上有这些完全相同的PHP联系表单代码。 1正在按预期工作,但另一个正在返回错误消息而不是成功消息。此外,电子邮件不会发送给我。

Contact.php代码如下:

<?php
ob_start();
 if(isset($_POST['submit']))
 {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $query = $_POST['message'];
    $email_from = $name.'<'.$email.'>';

 $to="email@gmail.com";
 $subject="Enquiry";
// $headers  = 'MIME-Version: 1.0' . "\r\n";
 //$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 $headers .= "From: ".$email_from."\r\n";
 $message="    
Name:
$name      
Email:
$email     
Message:
$query
";
    if(mail($to,$subject,$message,$headers))
        header("Location: http://www.website.com/contact.php?msg=Successful Submission! Thank you for contacting us."); 
    else
        header("Location: http://www.website.com/contact.php?msg=Error Sending Email!");
 }
?>

我想知道它是否是权限/服务器问题? 任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:0)

您的代码构造是正确的,并且返回值(这是您的自定义错误)可能是正确的&#34;如果&#34; 邮件功能失败。

很多时候我们发现php mail()函数无效。在某些情况下,即使函数返回true,也不会发送电子邮件。以下是您在调试时可以检查的要点:

  1. 首先检查sendmail_path变量是否设置正确。您可以 通过在页面中回显phpinfo()来查看它。典型的价值是 / usr / sbin / sendmail -t -i
  2. 如果要在第4个参数中发送额外的标题 功能,尝试删除它并发送。这是一个非常常见的情况 在邮件功能中有不正确的标题。
  3. 检查您的服务器中是否安装了垃圾邮件过滤器 阻止你的电子邮件。
  4. 如果您有权访问,请检查您的邮件日志文件,以查看邮件是否被邮件服务器阻止或尚未到达服务器。如果您的电子邮件没有在日志中输入,则表示您的PHP代码或php配置存在问题。如果它在日志中,您可以看到它未交付的原因。 邮件日志文件的典型路径是/ var / log / maillog