0

给定以下 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>

不工作。用户从中选择所需选项的 Index HTML 文件写得很好(根据我教授的说法),所以让我们假设问题出在其他地方。如果我直接转到该 php 文件: localhost\send.php 我会收到此错误:

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

它的含义是什么?

4

3 回答 3

1

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

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

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

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

于 2013-06-04T09:26:46.863 回答
1

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

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

您可能需要一些邮件服务器经验来安装它,但是一旦它工作,您就可以用它做任何您想做的事情。

于 2013-06-04T09:29:01.183 回答
-1

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

于 2013-06-04T09:34:50.773 回答