你可以搜索一下以前这样的文章不少的.这主要是因为你的php.ini没有配置好.在那里有一个smtp的服务器什么你没有配好.

解决方案 »

  1.   

    哈哈~终于碰到我知道的问题了,Yeah!!
    是这样的:
    [mail function]
    SMTP = localhost
    ;仅用于win32系统
    sendmail_from = [email protected]
    ;仅用于win32系统
    ;sendmail_path =
    ;仅用于unix, 也可支持参数(默认的是'sendmail -t -i')照样子做就OK了~嘿嘿~
      

  2.   

    不行,那服务器要配置smtp,我可没有权限!
      

  3.   

    要使用PHP的mail函数发送邮件,首先要在php.ini中配置好,如上;
    再有就是配置SMTP的邮件服务器。
    就可以了吧
      

  4.   

    使用下面这个mail类就可以使用smtp发邮件了,支持smtp认证。
    <? 
    class send_mail
    {
    var $lastmessage;
    var $lastact;
    var $domain;
    var $debug;
    var $smtp;
    var $port;
    var $fp;
    var $auth;
    var $user;
    var $passwd;
    function send_mail($smtp, $domain="", $user, $passwd, $auth=true, $debug=false)
    {
    if(empty($smtp)) die("SMTP cannt be NULL!");
    $this->smtp=$smtp;
    if(empty($domain))
    {
    $this->domain=gethostbyaddr("localhost");
    }
    else
    $this->domain=$domain;
    $this->debug=$debug;
    $this->lastmessage="";
    $this->lastact="";
    $this->port="25";
    $this->auth=$auth;
    $this->user=$user;
    $this->passwd=$passwd;
    }
    function show_debug($message, $inout)
    {
    if ($this->debug)

    if($inout=="in")
    {
    $m='<< ';
    }
    else
    $m='>> ';
    if(!ereg("\n$", $message))
    $message .= "<br>";
    $message=nl2br($message);
    echo "<font color=#999999>${m}${message}</font>";
    }
     }
    function do_command($command, $code)
    {
    $this->lastact=$command;
    $this->show_debug($this->lastact, "out");
    fputs ( $this->fp, $this->lastact );
    //$this->lastmessage = fgets ( $this->fp, 512 );
    //$this->show_debug($this->lastmessage, "in");while(true) 

    $this->lastmessage = fgets( $this->fp, 512 ); 
    $this->show_debug($this->lastmessage, "in"); 
    if(($this->lastmessage[3]==' ') or (empty($this->lastmessage))) 
    break; 

    if(!ereg("^$code", $this->lastmessage)) 

    return false; 

    else 
    return true; 
    }
    function send( $to,$from,$subject,$message) 

    //连接服务器 
    $this->lastact="connect"; 
    $this->show_debug("Connect to SMTP server : ".$this->smtp, "out"); 
    $this->fp = fsockopen ( $this->smtp, $this->port ); 
    if ( $this->fp ) 

    set_socket_blocking( $this->fp, true ); 
    $this->lastmessage=fgets($this->fp,512); 
    $this->show_debug($this->lastmessage, "in"); 
    if (! ereg ( "^220", $this->lastmessage ) ) 

    return false; 

    else 

    if($this->auth)
    {
    $this->lastact="EHLO " . $this->domain . "\n";

    else 
    $this->lastact="HELO " . $this->domain . "\n";
    //$this->lastact="HELO " . $this->domain . "\n";
    if(!$this->do_command($this->lastact, "250")) 

    fclose($this->fp); 
    return false; 
    }
    if($this->auth) 

    $this->lastact="AUTH LOGIN" . "\n"; 
    if(!$this->do_command($this->lastact, "334")) 

    fclose($this->fp); 
    return false; 

    //回传用户名,用base64编码 
    $this->lastact=base64_encode($this->user) . "\n"; 
    if(!$this->do_command($this->lastact, "334")) 

    fclose($this->fp); 
    return false; 

    //回传口令,用base64编码 
    $this->lastact=base64_encode($this->passwd) . "\n"; 
    if(!$this->do_command($this->lastact, "235")) 

    fclose($this->fp); 
    return false; 

    }
    $this->lastact="MAIL FROM: $from" . "\n"; 
    if(!$this->do_command($this->lastact, "250")) 

    fclose($this->fp); 
    return false; 

    $this->lastact="RCPT TO: $to" . "\n"; 
    if(!$this->do_command($this->lastact, "250")) 

    fclose($this->fp); 
    return false; 

    //发送正文 
    $this->lastact="DATA\n"; 
    if(!$this->do_command($this->lastact, "354")) 

    fclose($this->fp); 
    return false; 

    $head="Content-Type: text/html; charset=gb2312\n";
    if(!ereg($head,$message))
    {
    $message=$head.$message;
    }
    //处理Subject头 
    $head="Subject: $subject\n"; 
    if(!empty($subject) && !ereg($head, $message)) 

    $message = $head.$message; 

    //处理From头 
    $head="From: $from\n"; 
    if(!empty($from) && !ereg($head, $message)) 

    $message = $head.$message; 

    //处理To头 
    $head="To: $to\n"; 
    if(!empty($to) && !ereg($head, $message)) 

    $message = $head.$message; 
    }
    //加上结束串 
    if(!ereg("\n\.\n", $message)) 
    $message .= "\n.\n"; 
    $this->show_debug($message, "out"); 
    fputs($this->fp, $message); 
    $this->lastact="QUIT\n"; 
    if(!$this->do_command($this->lastact, "250")) 

    fclose($this->fp); 
    return false; 


    return true; 

    else 

    $this->show_debug("Connect failed!", "in"); 
    return false; 


    }
    $sendmail=new send_mail("smtp服务器地址","smtp服务器域名","smtp帐号","smtp密码",true);
    $sendmail->send("你要发的地址", "你的邮件地址", "邮件题名", 邮件内容)
    ?>
      

  5.   

    我怎麼配置服务器smtp????我的是WIN98
      

  6.   

    用其他不需要身份验证的smpt服务器的ip地址就可以了
      

  7.   

    在PHP.INI 中配置一下就可以了,只要你给出的能SMTP服务器正常发信就没有问题了。
      

  8.   

    不能用mail()发送的话那就用socket来发送
    楼上给的类就是通过socket来发送的,虽然速度不如mail(),但通用性强,再复杂点可以发送附件之类的
      

  9.   

    win2000 serverIIS有一个SMTP服务器的
    很好用的
      

  10.   

    应该不会
    看看你的SMTP服务器是否运行