提示很清楚,不能连接smtp服务器.
尝试,用outlook测试一下,看能不能用.

解决方案 »

  1.   

    提示很清楚,不能连接smtp服务器.
    尝试,用outlook测试一下,看能不能用.
      

  2.   

    试了outlook,很奇怪的是可以显示收到的新邮件,但是发不出邮件。
    是不是yahoo对smtp的使用是有条件的???
      

  3.   

     不用那么麻烦,我给你一个函数,简便易用,可以群发:
    函数调用:send_mail($email_to, $email_subject, $email_message);
    $email_to  收件邮箱 多个邮箱使用半角“,”隔开,例如:[email protected],[email protected],[email protected]
    $email_subject    邮件标题
    $email_message    邮件正文
    function send_mail($email_to, $email_subject, $email_message) {
    $mailcfg['server'] = 'mail.ww8ww.cn';    //邮件服务器地址
    $mailcfg['port'] = '25';    //邮件服务器端口
    $mailcfg['auth'] = 1;
    $mailcfg['auth_username'] = '[email protected]';    //登录名
    $mailcfg['auth_password'] = '密码';    //登录密码
    $charset = "gbk";    //字符集
    $fromname = "天下网";    //发件人名
    $frommail = "[email protected]";    //发件人邮箱 $email_subject = '=?'.$charset.'?B?'.base64_encode(str_replace("\r", '', str_replace("\n", '', $email_subject))).'?=';
    $email_message = chunk_split(base64_encode(str_replace("\r\n.", " \r\n..", str_replace("\n", "\r\n", str_replace("\r", "\n", str_replace("\r\n", "\n", str_replace("\n\r", "\r", $email_message)))))));
    $email_from = '=?'.$charset.'?B?'.base64_encode($fromname)."?= <$frommail>"; $headers = "From: $email_from\nMIME-Version: 1.0\nContent-type: text/plain; charset=$charset\nContent-Transfer-Encoding: base64\n";
    $nowdate = date("20ynjHis"); //服务器时间
    if(!$fp = fsockopen($mailcfg['server'], $mailcfg['port'], $errno, $errstr, 30)) {
    return "Unable to connect to the SMTP server";
    exit();
    }
      stream_set_blocking($fp, true); $lastmessage = fgets($fp, 512);
    if(substr($lastmessage, 0, 3) != '220') {
    return "CONNECT".$lastmessage;
    exit();
    } fputs($fp, ($mailcfg['auth'] ? 'EHLO' : 'HELO')." discuz\r\n");
    $lastmessage = fgets($fp, 512);
    if(substr($lastmessage, 0, 3) != 220 && substr($lastmessage, 0, 3) != 250) {
    return "HELO/EHLO".$lastmessage;
    exit();
    } while(1) {
    if(substr($lastmessage, 3, 1) != '-' || empty($lastmessage)) {
      break;
      }
      $lastmessage = fgets($fp, 512);
    } if($mailcfg['auth']) {
    fputs($fp, "AUTH LOGIN\r\n");
    $lastmessage = fgets($fp, 512);
    if(substr($lastmessage, 0, 3) != 334) {
    return "AUTH LOGIN".$lastmessage;
    exit();
    } fputs($fp, base64_encode($mailcfg['auth_username'])."\r\n");
    $lastmessage = fgets($fp, 512);
    if(substr($lastmessage, 0, 3) != 334) {
    return "USERNAME".$lastmessage;
    exit();
    } fputs($fp, base64_encode($mailcfg['auth_password'])."\r\n");
    $lastmessage = fgets($fp, 512);
    if(substr($lastmessage, 0, 3) != 235) {
    return "PASSWORD".$lastmessage;
    exit();
    }// $email_from = $mailcfg['from'];
    } fputs($fp, "MAIL FROM: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $email_from).">\r\n");
    $lastmessage = fgets($fp, 512);
    if(substr($lastmessage, 0, 3) != 250) {
    fputs($fp, "MAIL FROM: <".preg_replace("/.*\<(.+?)\>.*/", "\\1", $email_from).">\r\n");
    $lastmessage = fgets($fp, 512);
    if(substr($lastmessage, 0, 3) != 250) {
    return "MAIL FROM".$lastmessage;
    exit();
    }
    } foreach(explode(',', $email_to) as $touser) {
    $touser = trim($touser);
    if($touser) {
    fputs($fp, "RCPT TO: <$touser>\r\n");
    $lastmessage = fgets($fp, 512);
    if(substr($lastmessage, 0, 3) != 250) {
    fputs($fp, "RCPT TO: <$touser>\r\n");
    $lastmessage = fgets($fp, 512);
    return "RCPT TO".$lastmessage;
    exit();
    }
    }
    }
        //本段设置群发邮件时显示收件人内容,删除本段则显示所有收件邮箱---began
    list($email_to1,$email_to2)=split(",",$email_to);
    if ($email_to2){
    $email_to = '天下网会员';
    }
        //本段设置群发邮件时显示收件人内容,删除本段则显示所有收件邮箱---over
    fputs($fp, "DATA\r\n");
    $lastmessage = fgets($fp, 512);
    if(substr($lastmessage, 0, 3) != 354) {
    return "DATA".$lastmessage;
    exit();
    } fputs($fp, "To: $email_to\r\nSubject: $email_subject\r\n$headers\r\n$email_message\r\n.\r\n");
    sleep(1);
    fputs($fp, "QUIT\r\n");
    }
      

  4.   

    用类是因为可以有更多的功能
    像模拟outlook发送等等直接传送很多时候只会被送到垃圾邮件 =.=
      

  5.   

    呵呵,哪就说明你这个发送的邮件服务器是不能正常工作的.
    outlook都不能发送, phpmailer当然也不可以了.