今天捣鼓了一天PHPmailer ,最后发现 25号端口没有打开,导致老是:SMTP Error: Could not connect to SMTP host. telnet 127.0.0.1 25 与 telnet smtp.163.com 25  都没有用在控制面板里面的服务里面没有SMTP服务 ,该咋整啊?include ROOT_PATH.'includes/class.phpmailer.php';$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.163.com;
$mail->Port = '25';
$mail->CharSet = 'UTF-8';$mail->Username = '[email protected]';
$mail->Password ='1234567';$mail->Subject = '测试邮件标题'.date('Y-m-d H:i:s');
$mail->Body = '测试邮件内容';$mail->AddAddress('[email protected]');var_dump($mail->Send());

解决方案 »

  1.   

    密码对么? win有SMTP 才对。$mail->Username = '[email protected]';
    $mail->Password ='1234567';
      

  2.   

    密码是对的,设置都是对的,但是就是显示:SMTP Error: Could not connect to SMTP host. 从网上搜到,telnet smtp.163.com 25 显示无效,不通
     用netstat -n -a  发现没有25号端口该咋整啊.
      

  3.   

    $mail->Username = '[email protected]';
    改成
    $mail->Username = 'test';
      

  4.   

    改成TEST也不行呢?现在的问题是 都telnet 连接不到smtp.163.com有什么办法吗
      

  5.   

    你把code里面的username和password改为自己的真实邮箱和密码试试。
    $mail->Username = '真实的用户名';
    $mail->Password ='真实的密码';
      

  6.   

    下面的代码我测试过了,可以发,有些地方改成你的信息include '路径/class.phpmailer.php';
    $mail = new PHPMailer();
    $mail->IsSMTP(); // send via SMTP
    $mail->SMTPDebug=true;//这个参数可以打开debug,看看发送的时候有什么错误,然后查找错误根源
    $mail->Host = 'smtp.163.com'; // SMTP servers
    $mail->Port = '25';
    $mail->SMTPAuth = true; // turn on SMTP authentication
    $mail->Username = '163邮箱的用户名';//比如你的邮箱是[email protected],那么这里就写test
    $mail->Password ='163邮箱的密码';
    $mail->From = "[email protected]"; // 发件人邮箱
    $mail->FromName = "XXXX"; // 发件人名称
    $mail->CharSet = 'UTF-8';
    $mail->Encoding = "base64";$mail->AddAddress('[email protected]');//收件人,你可以给自己发一封试试
    $mail->IsHTML(true); // send as HTML 
    $mail->Subject = '测试邮件标题'.date('Y-m-d H:i:s');
    $mail->Body = '测试邮件内容';
    var_dump($mail->Send());
      

  7.   

    注意,这2个地方的username要一致哦,比如你的邮箱是:[email protected](这个邮箱必须是真实存在的,而且密码要正确,否则通不过smtp服务器的验证,当然也不可能发送成功,你debug一下就知道了)
    那么这里写:
    $mail->Username = 'van416521';
    这里就要写
    $mail->From = "[email protected]"; // 发件人邮箱这里只是163.com的邮箱的写法,其他的邮箱服务器不一定
      

  8.   

    如果telnet smtp.163.com 25 不通,那你看看你的网络,telnet都不通,phpmailer怎么可能连接到smtp服务器那?
    还有,是不是防火墙挡住了?
      

  9.   

    25号端口没有打开或者是DNS设置错误了吧
      

  10.   

    系统是WINXP SP3
    弱弱的问题: 怎么打开25号端口,控制面板下的服务没有SMTP服务.
      

  11.   


    如果你打算用163的smtp服务器来发邮件,你自己的电脑不需要打开25端口,你是用phpmailer连接smtp.163.com的25端口,与smtp.163.com进行交互来发送邮件的,和你自己电脑的25端口没什么关系
    如果你用sohu的smtp来发送邮件,那你就需要连接sohu的smtp服务器我这里是可以telnet smtp.163.com 25
    你不能连接smtp.163.com的25端口可能是你电脑的问题,试试关掉防火墙
      

  12.   

    防火墙已经关了,现在telnet smtp.163.com 25 也可以了,但是出现如下FAILSMTP -> ERROR: Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (41650632) 
    include 'class.phpmailer.php';
    $mail = new PHPMailer();
    $mail->IsSMTP(); // send via SMTP
    $mail->SMTPDebug=true;//这个参数可以打开debug,看看发送的时候有什么错误,然后查找错误根源
    $mail->Host = 'smtp.163.com'; // SMTP servers
    $mail->Port = '25';
    $mail->SMTPAuth = true; // turn on SMTP authentication
    $mail->Username = 'van416';//比如你的邮箱是[email protected],那么这里就写test
    $mail->Password ='xxxxxx';
    $mail->From = "[email protected]"; // 发件人邮箱
    $mail->FromName = "van416"; // 发件人名称
    $mail->CharSet = 'UTF-8';
    $mail->Encoding = "base64";$mail->AddAddress('[email protected]');//收件人,你可以给自己发一封试试
    $mail->IsHTML(true); // send as HTML 
    $mail->Subject = '测试邮件标题'.date('Y-m-d H:i:s');
    $mail->Body = '测试邮件内容';
    var_dump($mail->Send());
      

  13.   

    没有安装ssl.或者没有开启openssl扩展
      

  14.   


    开启了之后 
    打开php.ini,将“;extension=php_openssl.dll”前面分号去掉。 运行,又出现这样错误~~~ 郁闷SMTP -> ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: 不知道这样的主机。 (0)
    SMTP Error: Could not connect to SMTP host.boolean false
      

  15.   

    SORRY,出现这样的错误,是指那一块啊,好像已经可以成功了吧
    SMTP -> get_lines(): $data was "" 
    SMTP -> get_lines(): $str is "220 hz-b-smtp2.163.com SMTP Server for Netease [466] " 
    SMTP -> get_lines(): $data is "220 hz-b-smtp2.163.com SMTP Server for Netease [466] " 
    SMTP -> FROM SERVER:220 hz-b-smtp2.163.com SMTP Server for Netease [466] 
    SMTP -> get_lines(): $data was "" 
    SMTP -> get_lines(): $str is "250-hz-b-smtp2.163.com " 
    SMTP -> get_lines(): $data is "250-hz-b-smtp2.163.com " 
    SMTP -> get_lines(): $data was "250-hz-b-smtp2.163.com " 
    SMTP -> get_lines(): $str is "250-mail " 
    SMTP -> get_lines(): $data is "250-hz-b-smtp2.163.com 250-mail " 
    SMTP -> get_lines(): $data was "250-hz-b-smtp2.163.com 250-mail " 
    SMTP -> get_lines(): $str is "250-PIPELINING " 
    SMTP -> get_lines(): $data is "250-hz-b-smtp2.163.com 250-mail 250-PIPELINING " 
    SMTP -> get_lines(): $data was "250-hz-b-smtp2.163.com 250-mail 250-PIPELINING " 
    SMTP -> get_lines(): $str is "250-8BITMIME " 
    SMTP -> get_lines(): $data is "250-hz-b-smtp2.163.com 250-mail 250-PIPELINING 250-8BITMIME " 
    SMTP -> get_lines(): $data was "250-hz-b-smtp2.163.com 250-mail 250-PIPELINING 250-8BITMIME " 
    SMTP -> get_lines(): $str is "250-AUTH LOGIN PLAIN " 
    SMTP -> get_lines(): $data is "250-hz-b-smtp2.163.com 250-mail 250-PIPELINING 250-8BITMIME 250-AUTH LOGIN PLAIN " 
    SMTP -> get_lines(): $data was "250-hz-b-smtp2.163.com 250-mail 250-PIPELINING 250-8BITMIME 250-AUTH LOGIN PLAIN " 
    SMTP -> get_lines(): $str is "250-AUTH=LOGIN PLAIN " 
    SMTP -> get_lines(): $data is "250-hz-b-smtp2.163.com 250-mail 250-PIPELINING 250-8BITMIME 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN " 
    SMTP -> get_lines(): $data was "250-hz-b-smtp2.163.com 250-mail 250-PIPELINING 250-8BITMIME 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN " 
    SMTP -> get_lines(): $str is "250 STARTTLS " 
    SMTP -> get_lines(): $data is "250-hz-b-smtp2.163.com 250-mail 250-PIPELINING 250-8BITMIME 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 STARTTLS " 
    SMTP -> FROM SERVER: 250-hz-b-smtp2.163.com 250-mail 250-PIPELINING 250-8BITMIME 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 STARTTLS 
    SMTP -> get_lines(): $data was "" 
    SMTP -> get_lines(): $str is "334 VXNlcm5hbWU6 " 
    SMTP -> get_lines(): $data is "334 VXNlcm5hbWU6 " 
    SMTP -> get_lines(): $data was "" 
    SMTP -> get_lines(): $str is "334 UGFzc3dvcmQ6 " 
    SMTP -> get_lines(): $data is "334 UGFzc3dvcmQ6 " 
    SMTP -> get_lines(): $data was "" 
    SMTP -> get_lines(): $str is "535 authentication failed " 
    SMTP -> get_lines(): $data is "535 authentication failed " 
    SMTP -> ERROR: Password not accepted from server: 535 authentication failed 
    SMTP -> FROM SERVER: 
    SMTP -> ERROR: RSET failed: 
    SMTP Error: Could not authenticate. 
    boolean false
      

  16.   

    535 authentication failed 
    --------------------------
    验证失败,应该是用户名或者密码错误