首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 郁闷的OpenPOP的MIME Parser
【标  题】:郁闷的OpenPOP的MIME Parser
【关键字】:OpenPOP,MIME,Parser
【来  源】:http://wuvist.cnblogs.com/archive/2005/12/07/292611.html

郁闷的OpenPOP的MIME Parser

看样子,大家很少使用OpenPOP……所以,对关于OpenPOP/OpenSMTP/Mail.Net的一些东西…… 都没有啥反应……

不过,我很想知道开发OpenPOP的灵感之源是没有看到这些讯息还是怎么回事呢?

Well……偶又来说OpenPOP了……不过,只是要说其附带的MIME Parser而已……将email从RFC 822格式转换为Object的类……

被它搞得真是很郁闷……

它Parse的时候,很多地方都使用了Encoding.Default,不管email的具体编码是什么,全部都使用当前系统的编码去parse……

因为,这个Parse在很多情况下都可以正确解码,并且源代码中有注释说明:
<param name="encode">encoding method, "Default" is suggested</param>

推荐使用系统默认编码……偶实在不明白其中奥妙……

看其Parse Email Header部分的代码……似乎……也是有一个小bug……
有时候时候charset的信息都是紧跟在content-type后面的……这样的情况,Parser可以正确获得Email的编码……

但是,有的时候charset还是在content-type后面,但是,会换行,并且加一个tag,如:
Content-Type: text/html;
 charset="us-ascii"

这样的情况,Parser貌似就把charset给忽略掉了……

或者,这就是Parse UTF-8编码的中文信件出错的原因……

但是,还有另一个很严重的问题:解Quoted-Printable的函数有错……

DecodeQP.cs中138行有这样的内容及注释:
if(isBegin&& (count % 2==0)) //wait until even items to handle all character sets

但,如果是UTF-8编码,每个字符都是三个字节……貌似,应该改为:
if(isBegin&& (count % 3==0)) //wait until even items to handle all character sets including utf-8

否则,会缺字。

唉……郁闷的OpenPOP的MIME Parser……
[原创].Net中绑定到DataView的问题:【上一篇】
动态调用web服务:【下一篇】
【相关文章】
  • Cisco PIX ACL Parser
  • MIME之Base64编解码 选择自 bhw98 的 Blog
  • 关于lex与yacc生成parser的错误信息提示
  • MIME TYPE 大全
  • MIME的常用类型
  • 邮件加密两把锁:PGP和S/MIME
  • MIME和BASE64编码/解码程序代码
  • Expression.Parser v3.4 With FullSource
  • 利用错误的MIME头实行攻击
  • 用MIME类写了一个基本的发信小东东
  • 【随机文章】
  • 时间显示控制四板斧
  • ucspi-ssl的使用
  • Linux出现多种漏洞,安全系统不安全
  • 《仙境传说RO》商人和铁匠的技能分配
  • Xwindows
  • 中国信息化权威对话:Linux离我们有多近
  • PS CS中的“照片滤镜/Photo Filter”命令详解
  • SourceInsight中集成Artistic Style
  • Rational Rose MEM_BAD_POINTER
  • MS的笔试题目
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.