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

时间:2013-06-04 09:25:30

标签: php

给出以下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的邮件服务器,验证php.ini中的“SMTP”和“smtp_port”设置或使用C:\ wamp中的ini_set()第12行\ www \ send.php

它的含义是什么?

3 个答案:

答案 0 :(得分:1)

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

if (mail($to, $subject, $body, "From: $email")){ 这是引起问题的线。 mail函数是一个发送电子邮件的PHP函数。

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

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

答案 1 :(得分:1)

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

我使用的一个好的邮件服务器(我在Linux上使用它,但它也适用于Windows)是Axigen:http://www.axigen.com/mail-server/download/

您可能需要一些邮件服务器的经验才能安装它,但一旦工作,您可以随心所欲地做任何事情。

答案 2 :(得分:-1)

您无法从本地服务器发送电子邮件。将文件上传到Web服务器,然后尝试运行此代码。它会工作。