PHP邮件无法运行

PHP邮件无法运行,php,contact-form,Php,Contact Form,我的PHP联系人表单不会将我的电子邮件发送到任何地方,无论是收件箱还是垃圾邮件。 PHP是最新版本,在安装了SMTP的服务器上运行。 我不确定是我的代码还是软件 以下是我的php联系人脚本: <?php $to = "FILTERED"; $subject = $_POST['subject']; $message = $_POST['message'] ." From: " .$_POST['email']; $from = "contactform@contact.com

我的PHP联系人表单不会将我的电子邮件发送到任何地方,无论是收件箱还是垃圾邮件。 PHP是最新版本,在安装了SMTP的服务器上运行。 我不确定是我的代码还是软件

以下是我的php联系人脚本:

    <?php
$to = "FILTERED";
$subject = $_POST['subject'];
$message = $_POST['message'] ." From: " .$_POST['email'];
$from =    "contactform@contact.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
?>

我的表格:

<form method='post' action='contactscript.php'>
  Email: <input name='email' type='text' /><br />
  Subject: <input name='subject' type='text' /><br />
  Message:<br />
  <textarea name='message' rows='15' cols='40'>
  </textarea><br />
  <input type='submit' />
  </form>

电子邮件:
主题:
消息:


我希望-$to=“FILTERED”;表示您正在将过滤后的电子邮件地址放入$to中。如果mail()失败,您应该在PHP中得到一个错误。启用错误报告或检查日志文件。如果mail()没有失败,那么就不再是PHP问题了,您应该检查邮件服务器。您还可以尝试使用带有硬编码值的mail()发送邮件,以查看邮件是否发出。

要确定问题是出在代码还是外部软件中,请检查
mail()的返回值。


如果返回false,则错误在脚本中,或者邮件服务器未接受邮件的传递。

是否可以在From冒号后添加空格

$headers = "From:" . $from; 
->

但是是的,要么是var_dump,要么是echo out mail():

1表示成功,0表示失败


另外,$to似乎不是一个有效的电子邮件地址。

我会使用类似于每天200条消息的免费计划将其外包。它确保您的邮件不会被标记为垃圾邮件,因为它使用DKIM/SPF(您自己不太容易处理),而且您不必担心缩放问题



尽管可以使用参数和配置变量来更改,但php mail()默认使用sendmail。如果它没有安装在标准位置,并且您没有显式地将其配置为使用其他方法,则mail()将失败

您需要使用var_dump(邮件($to、$subject、$message、$headers))并查看返回的结果是真是假。在到达
mail()
之前,您确信一切正常吗?我收到了一条“发送失败”的消息,尽管我认为我的代码中没有问题?如果您确认您的代码没有问题(通过仔细检查$to、$subject、$message和$headers的值),您的邮件服务器没有接受您的邮件。您需要检查服务器日志以找出原因。服务器日志没有显示我的邮件被接受或拒绝,它们是空的。您的php.ini文件中是否有
SMTP
(Windows)或
sendmail\u from
sendmail\u路径
$headers = "From:" . $from; 
$headers = "From: " . $from;
echo mail($blah,...);