你能不能说详细点,是用POP不能正常看邮件内容吗? 在163上面设置对了没有》
解决方案 »
- BACnet有人研究过么?
- C#做的文件管理系统如何关联系统图标?
- c sharp 中有能实现微积分的函数库么?
- modem拨号字符串太长
- 一道经典Csharp编程题,请教大家,作为掌握数组的入门不错的说...
- c#都有些什么开发工具呀(除了visio外)
- 进程输出如何实时显示在textbox里?
- My97DatePicker用法问题。
- VS2010工具使用wpf连接oracle 报错
- 如何获取局域网中的所有 SQL Server 服务器(给点意见也可,UP无分)
- 请高手和版主们帮我解决一个困惑我多天的问题!!怎么响应TreeView控件的事件问题?详细内容请看正文?多谢
- 一个xml数据类型转换问题,有string转换为int型,可出现了问题,请兄弟们帮我看看什么地出错了,多谢!
就是在收邮件时出现了上面的那种码,请问怎么解码?
我是这样读邮件正文的
sData = "RETR 1" + CRLF ;
//定义获取帐户中邮件数目和占用空间的命令
byData = System.Text.Encoding.Default.GetBytes ( sData.ToCharArray ( ) ) ;
nsStream.Write ( byData , 0 , byData.Length ) ;
//向POP3服务器传送获取帐户中邮件数目和占用空间的命令
sRec = rdStream.ReadLine();
//接收服务器反馈的数据
请参考我的文
http://www.csdn.net/develop/Read_Article.asp?id=26479
楼上兄弟,我只到这是base64编码。关键是怎么解这码啊,兄弟!
????????????
byte[] by=Convert.FromBase64String("w7fP6DIxMTExDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQqhsM/GxvDE47XEuMfNt8C0o6xBT0AgICBodHRwOi8vZGVzaWduLjE2My5jb20vYW9jbW9uaXPQsqG2vs7Syc+joVZJUNPKz+QgyKvD5rGju6SjoSAgICoK1tC5+tfutPO1xMPit9HTys/k1Nq1yMTjIDI11de/1b8vbWFpbC4xNjMuY29tCgq147v3zfjS18Xdxd2+qs+yztGhoaGhoaGhoaFodHRwOi8vcG9wby4xNjMuY29tCg==");
string s=System.Text.Encoding.Default.GetString(by);
应该是 byte[] ss ;
bmei2=Convert.FromBase64String(ss);
arrRet[5]=System.Text.Encoding.GetEncoding("gb2312").GetString(ss);
但我困惑的是邮件头问题:
邮件头是什么编码的啊,而且不一样啊,我的收邮件时没做任何处理时,得到邮件头如下:
发送时间: Fri, 9 Apr 2004 13
发送者: "=?gb2312?B?bWVpeGlhbmc=?=" <[email protected]>
接收者: [email protected]
主题: =?gb2312?B?d3d3d2VycnI=?=
也就是接收着和时间不用解析就是对的,可发送者为什么前面有个多余的头,然后才是真正的发送者,而且主题就跟本不对了,不知是什么码,我用上面解析正文的方法解析主题时,出来错误:
: Base-64 字符串中的无效字符。
?????????????
不知邮件头是什么编码
你告诉一下我出现上面的问题后主要看你的码中哪一部分啊
我用: byte[] ss ;
bmei2=Convert.FromBase64String(ss);
arrRet[5]=System.Text.Encoding.GetEncoding("gb2312").GetString(ss);
方法很简单就实现了正文的解码,可邮件头不知是什么编码,所以我就不知用什么方法解码,
可怪的是邮件头我没解码,可接收者和发送时间是对的,而其它部分是不对的,不知它怎么会出现上文我所示的形式!
请兄弟多看看,研究研究啊
???????????????????
?????????????????
解码规则是这样的以解码"Subject: =?gb2312?B?19S8ujI=?="为例:如果文字经过编码则其应当被"=?"和"?="括起来。
因此我们可以知道文字被编码后的内容应当是
"gb2312?B?19S8ujI="。
它又可被分成三个部分,每个部分间用"?"号隔开
第一部分为文字的字符集,这个例子里是gb2312。
第二个部分是编码规则,B表示用Base64方式编码,
Q表示用Quoted Printable方式编码。
第三部分是实际被编码的文字也就是"19S8ujI="所以说解码"Subject: =?gb2312?B?19S8ujI=?="字段
方法就是分析提取这个字段的各个部分,并作相应的处理
看以下应该能解决
http://edu.china.com/zh_cn/it/wyht/11015326/20031210/11584911.htmlhttp://www.csdn.net/develop/Read_Article.asp?id=26479