php邮件功能不起作用

时间:2012-05-16 20:59:27

标签: php

$to= 'somebody@somedomain.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

我正在使用此代码尝试发送电子邮件。但我已经等了10分钟,还没有收到任何电子邮件。我在这里缺少什么?

4 个答案:

答案 0 :(得分:4)

您的代码没有错:我复制了它并收到了电子邮件。

也许它被发送到垃圾箱,也许邮件甚至无法到达,因为邮件服务器的IP被禁止了。

答案 1 :(得分:1)

我认为您使用的是IIS服务器,有时它不支持使用PHP发送邮件并发出错误。

要解决此问题,您可以在用于发送邮件的PHP页面中使用以下代码:

<?php ini_set("sendmail_form", "info@mydomain.com"); ?>

将代码放在此页面的第一行,然后编写其他代码。试试吧。

我猜您的邮件将从此页面发送给您的发件人。

答案 2 :(得分:0)

您的托管公司可能没有启用mail()功能,或者您没有检查邮箱中的“垃圾”文件夹。

答案 3 :(得分:0)

您可以查看http://ch.php.net/manual/en/mail.requirements.php页面:

  

要使邮件功能可用, PHP必须有权访问   编译期间系统上的sendmail二进制文件。如果你使用另一个   邮件程序,如qmail或postfix,请务必使用相应的   随附的sendmail包装器。 PHP将首先寻找   在您的PATH中发送sendmail,然后在以下内容中:   在/ usr / bin中:/ usr / sbin目录:/ USR的/ etc中:/ etc:在/ usr / ucblib中:/ usr / lib目录。这是非常高的   建议您从PATH获得sendmail。另外,用户   已编译的PHP必须具有访问sendmail二进制文件的权限。