本帖最后由 oWangPangZi 于 2014-07-06 16:24:34 编辑

解决方案 »

  1.   

    单独打印html文本,看看是否可以解析。
      

  2.   

    qq/hotmail/126都试了,接收到的都是纯HTML
      

  3.   

    给你一个发邮件函数吧
    <?phpfunction send_mail($to, $subject = 'No subject', $body) {
            $loc_host = "mail.server";            //发信计算机名,可随意
            $smtp_acc = "[email protected]";    //发邮件邮箱       
            $smtp_pass="111";                      //密码
            $smtp_host="ssl.corp-email.com";    //邮件服务器
            $from="[email protected]";              //发邮件邮箱 
        $deliver=$smtp_acc; 
        $headers = "Content-Type: text/plain; charset=\"gb2312\"\r\nContent-Transfer-Encoding: base64";
        $lb="\r\n";                       
            $hdr = explode($lb,$headers);     
        if($body) {$bdy = preg_replace("/^\./","..",explode($lb,$body));}        $smtp = array(
       
          array("EHLO ".$loc_host.$lb,"220,250","HELO error: "),
         
          array("AUTH LOGIN".$lb,"334","AUTH error:"),
         
          array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),
         
          array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));
        
          $smtp[] = array("MAIL FROM: <".$from.">".$lb,"250","MAIL FROM error: ");
      
          $smtp[] = array("RCPT TO: <".$to.">".$lb,"250","RCPT TO error: ");
         
          $smtp[] = array("DATA".$lb,"354","DATA error: ");
        
          $smtp[] = array("From: ".$deliver.$lb,"","");
         
          $smtp[] = array("To: ".$to.$lb,"","");
         
          $smtp[] = array("Subject: ".$subject.$lb,"","");
          
          foreach($hdr as $h) {$smtp[] = array($h.$lb,"","");}
          
          $smtp[] = array($lb,"","");
         
          if($bdy) {foreach($bdy as $b) {$smtp[] = array(base64_encode($b.$lb).$lb,"","");}}
         
          $smtp[] = array(".".$lb,"250","DATA(end)error: ");
       
          $smtp[] = array("QUIT".$lb,"221","QUIT error: ");      
            $fp = @fsockopen($smtp_host, 25);
            if (!$fp) echo "<b>Error:</b> Cannot conect to ".$smtp_host."<br>";
            while($result = @fgets($fp, 1024)){if(substr($result,3,1) == " ") { break; }}
           
            $result_str="";
           
            foreach($smtp as $req){
                   
                    @fputs($fp, $req[0]);
                   
                    if($req[1]){
                           
                            while($result = @fgets($fp, 1024)){
                                    if(substr($result,3,1) == " ") { break; }
                            };
                            if (!strstr($req[1],substr($result,0,3))){
                                    $result_str.=$req[2].$result."<br>";
                            }
                    }
            }
           
            @fclose($fp);
            return $result_str;
    };?>