<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><?php
@header("content-Type: text/html; charset=utf-8");$jmail = new COM('JMail.Message')    or die('无法调用Jmail组件');
$jmail->silent = true; //屏蔽例外错误
$jmail->charset = 'utf8'; //否则中文会乱码
$jmail->contentType = 'text/html';
$jmail->ISOEncodeHeaders = false;
$jmail->From ='web@***.com';  // 既是你邮箱 $jmail->FromName = '二手';
$jmail->AddRecipient('****@163.com'); //可添加多个邮件接受者$jmail->Subject = 'yang test.';
$body = 'www.koophp.com-这是系统自动发送的邮件,请不要回复此邮件!!多谢合作。';$jmail->Body=mb_convert_encoding($body, 'GB2312', 'UTF-8');   //内容中文转码
//$jmail->Body=$body;
$jmail->MailServerUserName ='web@***.com'; //发信邮件账号
$jmail->MailServerPassword ='123456'; //账户的密码
try{    $email = $jmail->Send('127.0.0.1');   //SMTP发信服务器地址     if($email) echo '发送成功';
     else echo '发送失败';
} catch (Exception $e){
     echo $e->getMessage();
}
?>以上代码是可以发送的,但是标题 和内容 全部都是乱码
还有这条语句 $jmail->ISOEncodeHeaders = false;
加了这条 显示发送成功但是收不到邮件,去掉这条就可以收到邮件但是乱码?就没有解决的办法吗百度找几个月了

解决方案 »

  1.   

    给你一个参考:http://hi.baidu.com/jroam/blog/item/b9fc39f34bf70d56342acc17.html
      

  2.   

    $jmail->charset = 'utf8'; //否则中文会乱码
    如果你此php文件编码为utf-8,那么就写成utf-8,我不知道你写成utf8是否错误。
    如果你网页不是utf-8,那么就相应改成网页的编码。
    但各大邮箱收件是GB2312,所以内容可以用mb_convert_encoding来转换,如你所写。
    应该就没有问题,如果标题和发件人也乱码,同样适用mb_convert_encoding来转换。