【问题标题】:mail() in PHP not working properly [duplicate]PHP中的mail()无法正常工作[重复]
【发布时间】:2013-06-04 09:25:30
【问题描述】:

给定以下 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 中使用 ini_set() \www\send.php 第 12 行

这是什么意思?

【问题讨论】:

  • ** 我使用的是 Wamp 2.2e
  • 好吧,让我们看看...你有一个邮件服务器在 localhost 上运行并监听 25 端口吗?
  • 这是因为除非您正确配置了邮件服务,否则无法从本地主机发送邮件
  • 我知道这一点,但每次我在本地工作时都忘记了!
  • 不要使用 PHP 的 mail() 函数。糟透了。使用像 phpMailer 这样的像样的邮件程序类。我不能肯定这一次是否足以解决你的问题,但它会让事情变得更容易使用和调试,更不用说它带来的所有附加功能了。

标签: php


【解决方案1】:

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

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

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

【讨论】:

  • smtp4dev 是一个很好的 Windows 易于使用的替代品。
【解决方案2】:

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

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

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

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

【讨论】:

  • 转到您的教授/系统管理员。告诉他们您想从 PHP 发送电子邮件。他们将:(a) 告诉您正确的配置是什么/为您修复配置,(b) 为您安装邮件服务器,(c) 告诉您不允许学生发送电子邮件不在他们的政策范围内。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 2014-07-30
    • 2015-06-16
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 2012-05-06
    相关资源
    最近更新 更多