本帖最后由 lyp71887188 于 2009-08-18 16:57:07 编辑

解决方案 »

  1.   

    你用的是yahoo的SMTP服务器,看一下它的SMTP服务器使用说明,好像yahoo不对普通用户开发smtp服务的。
      

  2.   


    谢谢了,可我一开始用的是163有,也是报错,连不上smtp服务器。真是急死了。
      

  3.   

    我没看见你的密码设置在什么地方,163等smtp是需要密码才能登陆的。
      

  4.   

    虽然你有做$mail->Password = "******"; // SMTP password
    但是,你哪一步登录了smtp服务器?
      

  5.   

    这是用163的,不知道哪有不对。谢谢了。<?php   
    /*******************************  
    * 作者:李英江  
    * 日期:2006-12-7  
    *******************************/  
    require("phpmailer/class.phpmailer.php");   
    echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" >";
    function smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name) {   
    $mail = new PHPMailer();   
    $mail->IsSMTP(); // send via SMTP   
    $mail->Host = "smtp.163.cn"; // SMTP servers   
    $mail->SMTPAuth = true; // turn on SMTP authentication   
    $mail->Username = "lyp7188"; // SMTP username 注意:普通邮件认证不需要加 @域名   
    $mail->Password = "*****"; // SMTP password   这里不是smtp的密码吗?
    $mail->From = "[email protected]"; // 发件人邮箱   
    $mail->FromName = "163.com管理员"; // 发件人   
    $mail->CharSet = "utf-8"; // 这里指定字符集!   
    $mail->Encoding = "base64";   
    $mail->AddAddress("[email protected]","username"); // 收件人邮箱和姓名   
    $mail->AddReplyTo("[email protected]","163.com");   
    //$mail->WordWrap = 50; // set word wrap   
    //$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment   
    //$mail->AddAttachment("/tmp/image.jpg", "new.jpg");   
    $mail->IsHTML(true); // send as HTML   
    // 邮件主题   
    $mail->Subject = $subject;   
    // 邮件内容   
    $mail->Body = '   
    <html><head>   
    <meta http-equiv="Content-Language" content="zh-cn">   
    <meta http-equiv="Content-Type" content="text/html; charset=GB2312"></head>   
    <body>   
    欢迎来到<a href="http://www.163.com">http://www.163.com</a> <br /><br />   
    感谢您注册为本站会员!<br /><br />   
    </body>   
    </html>   
    ';   
    $mail->AltBody ="text/html";   
    if(!$mail->Send())   
    {   
    echo "邮件发送有误 <p>";   
    echo "邮件错误信息: " . $mail->ErrorInfo;   
    exit;   
    }   
    else {   
    echo "$user_name 邮件发送成功!<br />";   
    }   
    }   
    // 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名)   
    smtp_mail('[email protected]', '欢迎来到163.com!', 'NULL', '163.com', 'username');   
    ?>  报错:
    邮件发送有误 
    邮件错误信息: SMTP Error: Could not connect 
      

  6.   

    $mail->Host = "smtp.163.cn"; // SMTP servers
    163的SMTP服务器应该是smtp.163.com
      

  7.   

    谢谢楼上一直对我的帮助我现在把smtp.163.cn换成smtp.163.com他,还是报错。。
    邮件发送有误 
    邮件错误信息: SMTP Error: Could not connect to SMTP host.
      

  8.   

    代码没有问题,我的代码和你一样,用的是公司的smtp服务器发送正常。
    感觉问题不在代码。建议你先了解一下163和雅虎的邮件系统是否支持smtp发送邮件。
      

  9.   


    谢谢,是不是因为我的本地没有smtp服务器的原因啊。class.phpmailer.php里是smtp的配置吗?