无法使用mail()php函数发送电子邮件

时间:2011-10-19 12:34:00

标签: php email

<?php
   SendEmail("makovetskiyd@yahoo.co.uk","Dima", "trololo");
   function SendEmail($to,$user_name, $user_password)
   {

     $subject="Political forum: registration";
     $body = 'Your user name is: ".$user_name  <br/>'.$user_name.' Your password is: '.$user_password.'<br/><br/> Click the link below for validation: <a href="#">Validation_Link</a>';

     $headers="FROM: $to\r\n";
     $headers.=" Content=type: text/html\r\n";


   if (mail($to, $subject, $body, $headers)) {
       echo("<p>Message successfully sent!</p>");
      } else {
       echo("<p>Message delivery failed...</p>");
      }
   }

?>

以上失败!!!

我有一点阅读,我发现你需要在你的php.ini中改变它:

  
    

仅适用于Win32。 ;         http://php.net/smtp SMTP = localhost;     http://php.net/smtp-port smtp_port = 25

         

仅适用于Win32。 ; http://php.net/sendmail-from sendmail_from =     yourguru27@gmail.com

  

我做了,但仍然失败

消息:

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\xampp\htdocs\PoliticalForum\StoredProcedure\User\email.php on line 16

邮件传递失败......

1 个答案:

答案 0 :(得分:1)

一件小事..你发的文字看起来不太好..但我猜你会解决这个问题,如果你让它发挥作用..

关于它为什么不起作用:你似乎试图发送到雅虎地址..许多服务器拒绝来自同一地址的邮件(特别是你从你自己的服务器发送的邮件,而不是雅虎)

所以不要使用用户的电子邮件地址作为发件人选择另一个 所以你需要改变这一行:

$headers="FROM: $to\r\n";

并使用除$ to之外的其他东西