Php 警告:mail()[function.mail]:无法连接到位于“的邮件服务器”;“本地主机”;端口25

Php 警告:mail()[function.mail]:无法连接到位于“的邮件服务器”;“本地主机”;端口25,php,mysql,Php,Mysql,我一直在尝试在我正在构建的网站上设置忘记密码功能,但每次尝试加载页面时,我都会遇到以下错误: 警告:mail()[function.mail]:无法在“localhost”端口25连接到mailserver,请验证php.ini中的“SMTP”和“SMTP_端口”设置或使用ini_集() 我如何着手解决这个问题 以下是我目前掌握的代码: <?php if (array_key_exists('forgot',$_POST)) { $email = $

我一直在尝试在我正在构建的网站上设置忘记密码功能,但每次尝试加载页面时,我都会遇到以下错误:

警告:mail()[function.mail]:无法在“localhost”端口25连接到mailserver,请验证php.ini中的“SMTP”和“SMTP_端口”设置或使用ini_集()

我如何着手解决这个问题

以下是我目前掌握的代码:

<?php

            if (array_key_exists('forgot',$_POST)) {

      $email = $_POST['email']; 

      mysql_select_db($database_speedycms, $speedycms);
      $query_email = "SELECT * FROM tbl_users WHERE email='$email'";
      $email = mysql_query($query_email, $speedycms) or die(mysql_error());
      $row_email = mysql_fetch_assoc($email);
      $totalRows_user = mysql_num_rows($email);

      mysql_query("SELECT * FROM users WHERE email='$email'");

      if($totalRows_user == 0)

      {
      echo "<span class='form2'>We're sorry, but we could not find a user with that email address.<p>Please try again.<p>
      <a href='forgotpassword.php' class='form'>Return</a></span>";
      }

      else

      {


        // create a random password 
      function createRandomPassword() { 
      $chars = "abcdefghijkmnopqrstuvwxyz023456789"; 
         srand((double)microtime()*1000000); 
         $i = 0; 
         $pass = '' ; 
      while ($i <= 7) { 
            $num = rand() % 33; 
            $tmp = substr($chars, $num, 1); 
            $pass = $pass . $tmp; 
            $i++; 
          } 
         return $pass; 
      }
      $password = createRandomPassword(); 


      // generate email

      $username = $row_email['username'];
      $msg  = "Your new login information is:\n\n";
      $msg .= "Username: $username\n";
      $msg .= "Password: $password\n";

      mail("$email", "Speedy CMS Login Information", "$msg", "From:noreply@domain.com");

      // display message  

      echo "<span class='form2'>Thanks. Your new password has been sent to <i>".$row_email['email']."</i>.<p>
      <a href='index.php' class='form'>Return</a></span>";

      }

      exit;

      }

    ?>

看起来您的服务器没有运行smtp邮件服务器。您可以使用这些函数设置不同的smtp服务器:

ini_set('SMTP', "server.com");
ini_set('smtp_port', "25");
ini_set('sendmail_from', "email@domain.com");
当然,您必须知道一个活动的smtp服务器


祝你好运

网站运行的系统上似乎没有SMTP服务器。这是什么样的服务器

看起来您使用的是本地PHP安装(使用WAMPSERVER、EasyHP或其他),因为“真正”的主机很少错误配置其服务器。如果是这种情况,请编辑php.ini并使用ISP设置示例:

[mail function]
SMTP = mail.yourdomain.com
smtp_port = 25

您必须在
php.ini
文件中配置这些值

SMTP = smtp.yourdomain.com  
smtp_port = 25 
username = info@yourdomain.com
password = yourmailpassord
sendmail_from = info@yourdomain.com
您可以提供与outlook配置中相同的详细信息。一些服务器也在检查“sendmail_from”地址

Warning: mail(): SMTP server response: 550 Access denied - Invalid HELO name (See 
RFC2821 4.1.1.1) in C:\AppServ\www\VOGUE\email.php on line 38

after add following codes...............
ini_set('SMTP','server.com')

ini_集('smtp_端口',“25”)

ini_集('sendmail_from','email@domain.com");


您是否在本地主机上运行邮件服务器<代码>telnet本地主机25。是的。。。不知道您需要使用uk2.net设置一个upim。。。他们现在已经告诉我细节了。我猜不需要安装?我正在使用xampp进行本地开发。好的,试着让它在同时运行SMTP服务的服务器上运行。或者将您的PHP配置为使用外部邮件服务器。您可以推荐任何免费的外部邮件服务器吗?没有免费的外部邮件服务器(至少是可靠的)。。。想象一下这些服务器会有垃圾邮件滥用!你知道我可以用哪台smtp服务器吗?也许你可以用你isp的邮件服务器。有些人不需要登录。我不确定谷歌使用SMTP服务器的规则。我很确定你必须通过身份验证才能使用他们的SMTP服务器,我在PHP.ini中没有看到这种设置。。。但是你可以使用你的ISP设置来确定。你也需要它…我收到警告:mail()SMTP服务器响应571 5.7.1邮件被拒绝。需要身份验证。。。。
how to add password of "sendmail_from" account???????