我写了下面的方法,但是139.com要不邮箱收不到验证邮件,要不就是收到“亲爱的用户”五个字,163、sohu都正常,用的pc看的,跪求高手赐教。function send_mail($email,$uid,$username){ $code_uid=new encryption;
$encode_uid=$code_uid->base64_en($uid); $subject="邮箱认证";
$subject=iconv("UTF-8","gb2312",$subject);
$manager=iconv("UTF-8","gb2312","邮箱认证");
$url = "http://u.001li.com/index.php?action=sign&act=email_check&yiyuanli_uid=".$encode_uid;
$mailBody = '亲爱的用户 '.$username.',请点击下面的链接完成邮件验证: <br><br><a href="'.$url.'">'.$url.'</a><br><br>如果页面无法跳转,请将上面的地址复制到你的浏览器(如IE)的地址栏继续。';
//$mailBody .= '请点击下面的链接完成邮件验证: <br><br>';
//$mailBody .= '<a href="'.$url.'">'.$url.'</a><br><br>';
$header = "From: $manager<service@这里写的公司邮箱后缀>" . "\r\n" . "content-type: text/html; charset=gb2312\r\n";
//$mailBody .= "如果页面无法跳转,请将上面的地址复制到你的浏览器(如IE)的地址栏继续。";
//$mailSubject = '网商帮邮件验证';
$mailType = 'HTML';
$mailBody=iconv("UTF-8","gb2312",$mailBody);
$mailType=iconv("UTF-8","gb2312",$mailType);
//$subject=iconv("UTF-8","gb2312",$subject);
mail($email,$subject,$mailBody,$header,$mailType);
}

解决方案 »

  1.   

    把$mailBody中的变量全去掉,只留静态部分试一试
      

  2.   

    就是没有收到邮件content, 其他都正常?
      

  3.   

    是的,sohu、163、yahoo等都正常,就是sohu慢点……
      

  4.   

    $username是什么编码?strlen($username)看看
      

  5.   

    如果$username依然是urf-8的也许会导致截断了后面的字符串
      

  6.   

    你先用text格式發送測試是否通過...