当前位置:编程学习 > C#/ASP.NET >>

关于jmail与openpop乱码问题~~求救!

  我写的是C#语言,我用jmail组件和openpop组件分别从企业邮箱收信件,结果都是乱码~~也不能说是乱码,应该是解码格式不对,运行结果如下所示,前三个字其实是测试这俩字~我想有没有办法获得邮件的编码方式啊,在判断解码,高手帮忙啦~
      娴嬭瘯kjhjhk  --------------------编程问答-------------------- 是否不支持中文?我经常发现很多不支持中文的。


my blog
http://ufo-crackerx.blog.163.com/ --------------------编程问答-------------------- jmail组件能不能给我发一个啊,楼主 谢谢啦  我的邮箱raolei521@sina.cn --------------------编程问答-------------------- 和大家分享一个解决方案,不过我这是间接的处理乱码的问提

1、使用OpenPOP生成EML邮件
   POPClient popClient = new POPClient();
   ...
   OpenPOP.MIME.Message message = popClient.GetMessage(messageID); 
   message.SaveToMIMEEmailFile(FileName, true);

2、添加COM组件cdosys.dll的引用,如图


3、相关代码
  /// <summary>
        /// 获取eml文件的主体内容
        /// </summary>
        /// <param name="file">eml文件的路径</param>
        /// <returns>eml文件的主体内容</returns>
        public string ReadEML(string file)
        {
            CDO.Message oMsg = new CDO.Message(); 
            ADODB.Stream stm = null;
            //读取EML文件到CDO.MESSAGE,做分析的话,实际是用了下面的部分
            try
            {
                stm = new ADODB.Stream();
                stm.Open(System.Reflection.Missing.Value,
                         ADODB.ConnectModeEnum.adModeUnknown,
                         ADODB.StreamOpenOptionsEnum.adOpenStreamUnspecified,
                         "", "");
                stm.Type = ADODB.StreamTypeEnum.adTypeBinary;//二进制方式读入

                stm.LoadFromFile(file); //将EML读入数据流

                oMsg.DataSource.OpenObject(stm, "_stream"); //将EML数据流载入到CDO.Message,要做解析的话,后面就可以了。 

            }
            catch (IOException ex)
            {

            }
            finally
            {
                stm.Close();
            }
            return oMsg.HTMLBody;//oMsg里包含了邮件相关的所有信息
        }

使用以上方法,绝对可以准确无误的获取任何和邮件有关的内容,因为上面是Outlook相关的组件
有关“cdosys.dll”模块可以到网上进一步了解,使用它可以方面的完成邮件的所有功能 --------------------编程问答-------------------- 标记关注..


JMAIL和OPENPOP都有邮件歇息的缺陷
补充:.NET技术 ,  组件/控件开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,