收取qq发送来的邮件正文为乱码,在 编码 手动选择GB2312没问题。截取部分邮件原结构发现qq的编码为gb18030,extmail会自动判别编码格式来显示。
$VAR1 = {
‘body’ => {
‘list’ => [
{
‘pos_end’ => ‘1596’,
‘pos_start’ => 1490,
‘phead’ => {
‘Content-Type’ => ‘text/plain’,
‘charset’ => ‘gb18030’,
‘Content-Transfer-Encoding’ => ‘base64’
},
‘idflag’ => ‘alternative-0’,
‘size’ => ‘106’
},
{
‘pos_end’ => ‘1757’,
‘pos_start’ => 1640,
‘phead’ => {
‘Content-Type’ => ‘text/html’,
‘charset’ => ‘gb18030’,
‘Content-Transfer-Encoding’ => ‘base64’
EMOS官网解释:
关于GB18030
由thunderbird或某些客户端软件发出的中文邮件编码是GB18030,部分内容甚至全部乱码。经过仔细检查发现是Perl 目前版本(5.8.8或以下)缺少了GB18030码表,因此增加了Encode::HanExtra码表模块的支持,解决了此问题。
解决方法如下:
[root@emos ~]# wget -c http://search.cpan.org/CPAN/authors/id/A/AU/AUDREYT/Encode-HanExtra-0.23.tar.gz
[root@emos ~]# cd Encode-HanExtra-0.23
[root@emos Encode-HanExtra-0.23]# perl Makefile
[root@emos Encode-HanExtra-0.23]# make install
直至完成,刷新页面即可。
另一种方法就是在用QQ邮箱写信时,设置编码为Unicode
勾选始终使用Unicode编码发信。后面也给出了解释。
PS:
EMOS1.5中perl版本就是5.8.8,在新版本的emos1.6中版本为5.10.1。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/1287.html