PHP中的mail()无法正常工作

PHP中的mail()无法正常工作,php,Php,给定以下php代码: <html> <body> <?php $fname ="First Name = ".$_REQUEST['fname']."\n"; $lname ="Last Name = ".$_REQUEST['lname']."\n"; $breakfast = "Desired Breakfast = ".$_REQUEST['breakfast']."\n";

给定以下php代码:

 <html>
     <body>
     <?php 
         $fname ="First Name = ".$_REQUEST['fname']."\n"; 
         $lname ="Last Name = ".$_REQUEST['lname']."\n";
         $breakfast = "Desired Breakfast = ".$_REQUEST['breakfast']."\n";
         $floor ="Desired Floor = ".$_REQUEST['floor']."\n"; 
         $to = "XXXX@gmail.com";
         $email="XXXX@gmail.com";
         $subject="shenkar php form from erez geva site";
         $body =$fname.$lname.$breakfast.$floor;
         if (mail($to, $subject, $body, "From: $email")){
             header("Location: http://localhost:9090/sent.html");
             exit();
         }else{
             echo("<p>Message delivery failed...</p>");
         } 
     ?>
     </body>
 </html>

不起作用。 用户从中选择所需选项的索引HTML文件写得很好(据我教授所说),所以让我们假设问题在别处。 如果直接转到该php文件:localhost\send.php,则会出现以下错误:

警告:mail()[function.mail]:无法在“localhost”端口25连接到mailserver,请验证php.ini中的“SMTP”和“SMTP\u端口”设置,或在第12行使用C:\wamp\www\send.php中的ini\u set()


这是什么意思?

您的脚本正在尝试发送电子邮件,但本地服务器上没有正确配置的电子邮件服务

if(mail($to,$subject,$body,“From:$email”){
这是导致问题的一行。
mail
函数是一个发送电子邮件的PHP函数

当脚本到达此调用时,PHP尝试连接到服务器上的邮件服务,但无法连接,因此失败


很可能没有邮件服务正在运行,或者可能是以非默认方式配置的。无论哪种方式,这都适用于您的系统管理员。

您需要安装本地邮件服务器才能执行此操作。如果您想将其发送到外部电子邮件地址,它可能会以不需要的电子邮件结束,或者根本无法到达

我使用的一个好邮件服务器(我在Linux上使用它,但它也可用于Windows)是Axigen:


您可能需要一些mailservers的经验才能安装它,但一旦它工作,您就可以用它做任何您想做的事情。

您不能从本地服务器发送电子邮件。请将文件上载到web服务器,然后试着运行此代码。它会工作。

**我使用的是Wamp 2.2嗯,让我们看看……您是否有在本地主机上运行的邮件服务器d在端口25上侦听?这是因为除非您正确配置了邮件服务,否则无法从本地主机发送邮件。我知道这一点,但每次在本地工作时我都会忘记!不要使用PHP的
mail()
函数。它很糟糕。使用一个像样的邮件类,如phpMailer。我不能确定这一次是否足以解决您的问题,但它会使事情更容易处理和调试,更不用说它带来的所有附加功能。去您的教授/系统管理员那里。告诉他们您想从他们会:(a)告诉你正确的配置是什么/为你修复配置,(b)为你安装邮件服务器,(c)告诉你允许学生发送电子邮件不在他们的政策范围内。这是一个很好的Windows易用的替代方案。