关于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技术 , 组件/控件开发