系统发送的邮件产生乱码 [技术论坛 - 使用问答] imag1

正在浏览:   1 名游客






系统发送的邮件产生乱码
新进会员
注册日期:
7/31 17:56
所属群组:
注册会员
帖子: 4 | 精华: 1
等级: 1; EXP: 21
HP: 0 / 5
MP: 1 / 4
离线
我这里用的是Xoops V2.0.16,系统发邮件给用户(注册激活邮件),可是用户信箱比如163,hotmail的显示出的都是乱码,查看了编码,确实是中文简体GB2312,请问这是哪里的问题呢?谢谢!

7/31 18:05
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 系统发邮件(注册激活)给用户,邮件却是显示乱码,求教
新进会员
注册日期:
7/31 17:56
所属群组:
注册会员
帖子: 4 | 精华: 1
等级: 1; EXP: 21
HP: 0 / 5
MP: 1 / 4
离线
有人可以帮忙么?谢谢!

8/6 18:15
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 系统发邮件(注册激活)给用户,邮件却是显示乱码,求教
网站管理员
注册日期:
2005/10/29 13:32
来自 北京
所属群组:
网站管理员
注册会员
ComSupp
推广组
帖子: 1855 | 精华: 12
等级: 35; EXP: 91
HP: 349 / 872
MP: 618 / 5215
离线
文件htdocs\class\xoopsmailer.php
var $charSet = 'iso-8859-1';
修改为: var $charSet = 'utf-8';
或者: var $charSet = 'gb2312';

根据你的网站编码选择设置。
如果你采用UTF-8,那么还应该继续解决PHPMailer邮件标题中文乱码:http://www.thedevlog.com/dev/log-29.html

8/6 18:49
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 系统发邮件(注册激活)给用户,邮件却是显示乱码,求教
高级会员
注册日期:
2004/7/16 16:12
所属群组:
注册会员
帖子: 75 | 精华: 2
等级: 7; EXP: 59
HP: 0 / 164
MP: 25 / 1603
离线
不需要根据http://www.thedevlog.com/dev/log-29.html改吧。EncodeHeader函数后面本来就有用base64或者quoted-printable编码的内容。(难道我们的class.phpmailer.php版本不一样? 我的1.73)

8/7 9:22
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 系统发邮件(注册激活)给用户,邮件却是显示乱码,求教
网站管理员
注册日期:
2005/10/29 13:32
来自 北京
所属群组:
网站管理员
注册会员
ComSupp
推广组
帖子: 1855 | 精华: 12
等级: 35; EXP: 91
HP: 349 / 872
MP: 618 / 5215
离线
引文:

taogx 写道:
不需要根据http://www.thedevlog.com/dev/log-29.html改吧。EncodeHeader函数后面本来就有用base64或者quoted-printable编码的内容。(难道我们的class.phpmailer.php版本不一样? 我的1.73)


我重新做了一次测试,只要修改下述即可,不必对邮件标题做特殊处理。

文件htdocs\class\xoopsmailer.php
var $charSet = 'iso-8859-1';
修改为: var $charSet = 'utf-8';
或者: var $charSet = 'gb2312';

8/7 10:35
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 系统发邮件(注册激活)给用户,邮件却是显示乱码,求教
高级会员
注册日期:
2004/7/16 16:12
所属群组:
注册会员
帖子: 75 | 精华: 2
等级: 7; EXP: 59
HP: 0 / 164
MP: 25 / 1603
离线
打开htdocs\class\xoopsmailer.php ,137行附近
$this->multimailer = new XoopsMultiMailer();
$this->reset();
后面添加一行:
$this->charSet = strtolower( _CHARSET );
$this->encoding = 'base64';
原因是xoopsmultimailer.php指定了charset为系统的charset,但是这个xoopsmailer.php却破坏了,重新指定为了iso-8859-1。

为了在更多系统中兼容,将编码指定为base64。默认为8bit,一般系统中不会出现问题,但是还是base64编码一把稳妥。

8/7 11:43
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 系统发邮件(注册激活)给用户,邮件却是显示乱码,求教
高级会员
注册日期:
2004/7/16 16:12
所属群组:
注册会员
帖子: 75 | 精华: 2
等级: 7; EXP: 59
HP: 0 / 164
MP: 25 / 1603
离线
实为xoops bug

8/7 11:47
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 系统发邮件(注册激活)给用户,邮件却是显示乱码,求教
高级会员
注册日期:
2004/7/16 16:12
所属群组:
注册会员
帖子: 75 | 精华: 2
等级: 7; EXP: 59
HP: 0 / 164
MP: 25 / 1603
离线
更完美的解决办法是:

打开htdocs\language\schinese\xoopsmailerlocal.php和htdocs\language\schinese_utf8\xoopsmailerlocal.php 修改为:
<?php
class XoopsMailerLocal extends XoopsMailer {

function XoopsMailerLocal(){
$this->XoopsMailer();
$this->charSet = strtolower( _CHARSET );
$this->encoding = 'base64';
}
}
?>

8/7 13:24
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 系统发送的邮件产生乱码
新进会员
注册日期:
7/31 17:56
所属群组:
注册会员
帖子: 4 | 精华: 1
等级: 1; EXP: 21
HP: 0 / 5
MP: 1 / 4
离线
多谢:)

8/7 14:13
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 系统发邮件(注册激活)给用户,邮件却是显示乱码,求教
网站管理员
注册日期:
2005/10/29 13:32
来自 北京
所属群组:
网站管理员
注册会员
ComSupp
推广组
帖子: 1855 | 精华: 12
等级: 35; EXP: 91
HP: 349 / 872
MP: 618 / 5215
离线
引文:

taogx 写道:
更完美的解决办法是:

打开htdocs\language\schinese\xoopsmailerlocal.php和htdocs\language\schinese_utf8\xoopsmailerlocal.php 修改为:
class XoopsMailerLocal extends XoopsMailer {

function XoopsMailerLocal(){
$this->XoopsMailer();
$this->charSet = strtolower( _CHARSET );
$this->encoding = 'base64';
}
}
?>


经D.J.确认,确实就是这样解决,今后新版xoops中文版发布时,将直接纳入。

8/8 17:21
工具箱 短消息 Email PDF 书签 打印 举报 回顶部





不可查看帖子。
不可发帖。
不可回复。
不可编辑自己的帖子。
不可删除自己的帖子。
不可发起投票调查。
不可在投票调查中投票。
不可上传附件。
不可不经审核直接发帖。
不可使用主题类别。
不可以使用HTML语法。
不可以使用签名档。

[高级搜索]