php发送注册邮件,邮件收到后变纯html文本了

WBOY
发布: 2016-06-23 13:54:12
原创
1006 人浏览过


代码如下:

  }
else
{
if (isset($_POST['n_register']))
{
$mail = trim($db->EscapeString($_POST['reg_mail']));
$mail_re = trim($db->EscapeString($_POST['reg_mail_re']));

if (!preg_match("/^[a-zA-Z_\\-][\\w\\.\\-_]*[a-zA-Z0-9_\\-]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$/i", $mail))
{
$errorMsg = $langBase->get('home-08');
}
elseif ($mail !== $mail_re)
{
$errorMsg = $langBase->get('home-09');
}
elseif ($db->GetNumRows($db->Query("SELECT id FROM `[users]` WHERE `email`='".$mail."' LIMIT 1")) > 0)
{
$errorMsg = $langBase->get('home-10');
}
elseif ($db->GetNumRows($db->Query("SELECT id FROM `[users]` WHERE `IP_regged_with`='".$_SERVER['REMOTE_ADDR']."' LIMIT 1")) > 0)
{
$errorMsg = $langBase->get('home-11');
}
elseif ($db->GetNumRows($db->Query("SELECT id FROM `temporary` WHERE `playerid`='".$mail."' AND `active`='1' AND `area`='register' AND `time_added`+`expires`>'".time()."' LIMIT 1")) > 0)
{
$errorMsg = $langBase->get('home-111');
}
elseif (!isset($_POST['acc_tos']))
{
$errorMsg = $langBase->get('home-12');
}
else
{
$extra = array(
'mail' => $mail,
'enlist' => isset($_GET['e']) ? $db->EscapeString($_GET['e']) : $ref_id
);
$enlist_id = isset($_GET['e']) ? $db->EscapeString($_GET['e']) : $ref_id;

$tempID = substr(sha1(uniqid(rand())), 0, 6);
$db->Query("INSERT INTO `temporary` (`id`, `playerid`, `area`, `expires`, `time_added`, `extra`)VALUES('".$tempID."', '".$mail."', 'register', '3600', '".time()."', '".serialize($extra)."')");

mail($mail, $admin_config['game_name']['value'].' ?Signup', 
'












'.$admin_config['game_name']['value'].'

« Signup


Hello,




Click bellow to go at step 2:

'.$config['base_url'].'?side=signup&step=2&v='.$tempID.'


This link is active until '.View::Time(time()+3600, true).'.

Best Regards,


'.$admin_config['game_name']['value'].'


',
"Reply-To: ".$admin_config['game_name']['value']." \r\n" . 
"From: ".$admin_config['game_name']['value']." \r\n" .
"MIME-Version: 1.0\r\n" .
"Content-type: text/html; charset=iso-8859-1");

$successMsg = $langBase->get('home-24');
}
}
?>


回复讨论(解决方案)

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

邮箱不支持html??

邮箱不支持html??


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

给你一个发邮件函数吧

function send_mail($to, $subject = 'No subject', $body) {
        $loc_host = "mail.server";            //发信计算机名,可随意
        $smtp_acc = "test@163.com";    //发邮件邮箱       
        $smtp_pass="111";                      //密码
        $smtp_host="ssl.corp-email.com";    //邮件服务器
        $from="test@163.com";              //发邮件邮箱 
    $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: ".$lb,"250","MAIL FROM error: ");
  
      $smtp[] = array("RCPT 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 "Error: Cannot conect to ".$smtp_host."
";
        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."
";
                        }
                }
        }
       
        @fclose($fp);
        return $result_str;
};

?>

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板