mail()函数似乎不起作用

时间:2013-11-27 15:06:18

标签: php

我使用以下代码尝试发送电子邮件 - 我看不出任何问题 - 但它不起作用,它显示消息“发送电子邮件”但我没有收到任何内容。

<?php
$to = "email@address.com";
$subject = "Query";
$message_body.="Name: ".$_POST["name"]."<br>\n";
$message_body.="JobTitle: ".$_POST["jobtitle"]."<br>\n";
$message_body.="Phone: ".$_POST["phone"]."<br>\n";
$message_body.="Email: ".$_POST["email"]."<br>\n";
$header = "Reply-To: ".$_POST["email"]."\n";
$header .= "Content-type: text/html;
mail($to, $subject,  $message_body, $header);
echo "Email sent";
?>

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

检查1)对于可用的邮件功能,PHP需要已安装且正常工作的电子邮件系统。要使用的程序由php.ini文件中的配置设置定义。

你提到没有错误..所以接下来..

检查2)检查功能的返回值.. TRUE或FALSE

检查3)通过启用error_reporting(E_ALL)

查看是否有任何警告

检查4)实际发送了邮件,但是转到垃圾邮件文件夹。

  

对于mail(),重要的是要注意,因为邮件是   接受交付,这并不意味着邮件将实际到达   预定的目的地。

在Windows和Unix中它的工作方式也有所不同。

答案 1 :(得分:0)

您的示例在最后一个$标题行中缺少“

尝试添加:

error_reporting(E_ALL);
ini_set("display_errors","On");

在文件的开头显示您获得的错误/警告。很可能sendmail没有在您的服务器上运行

答案 2 :(得分:0)

尝试检查您的SMTP服务器配置。 http://php.net/manual/en/mail.configuration.php

可能会阻止你的邮件。