PHP 联系表返回错误消息
PHP Contact Form returning Error Message
我在 2 个不同的服务器上有这些完全相同的 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!");
}
?>
请问是不是permissions/server的问题?
任何帮助将不胜感激!谢谢!
您的代码构造是正确的,return 值(这是您的自定义错误)可能是正确的 "if" 邮件功能失败。
很多时候我们发现 php mail() 函数不起作用。在某些情况下,即使函数 return 为真,也不会发送电子邮件。以下是您在调试时可能要检查的要点:
- 首先检查sendmail_path变量是否设置正确。你可以
从页面中的 echo – ing phpinfo() 查看它。典型值为
/usr/sbin/sendmail -t -i
- 如果您在第 4 个参数中发送额外的 headers
功能,尝试将其删除并发送。这是一个非常常见的场景
邮件功能中有错误的header。
- 检查您的服务器是否安装了垃圾邮件过滤器
阻止您的电子邮件。
如果您有访问权限,请检查您的邮件日志文件,看看邮件是否被邮件服务器阻止或尚未到达服务器。如果日志中没有您的电子邮件条目,则表示您的 php 代码或 php 配置有问题。如果它在日志中,您可以看到它未交付的原因。
邮件日志文件的典型路径是 /var/log/maillog
我在 2 个不同的服务器上有这些完全相同的 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!");
}
?>
请问是不是permissions/server的问题? 任何帮助将不胜感激!谢谢!
您的代码构造是正确的,return 值(这是您的自定义错误)可能是正确的 "if" 邮件功能失败。
很多时候我们发现 php mail() 函数不起作用。在某些情况下,即使函数 return 为真,也不会发送电子邮件。以下是您在调试时可能要检查的要点:
- 首先检查sendmail_path变量是否设置正确。你可以 从页面中的 echo – ing phpinfo() 查看它。典型值为 /usr/sbin/sendmail -t -i
- 如果您在第 4 个参数中发送额外的 headers 功能,尝试将其删除并发送。这是一个非常常见的场景 邮件功能中有错误的header。
- 检查您的服务器是否安装了垃圾邮件过滤器 阻止您的电子邮件。
如果您有访问权限,请检查您的邮件日志文件,看看邮件是否被邮件服务器阻止或尚未到达服务器。如果日志中没有您的电子邮件条目,则表示您的 php 代码或 php 配置有问题。如果它在日志中,您可以看到它未交付的原因。 邮件日志文件的典型路径是 /var/log/maillog