lixx
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 53 文章- 0 评论- 1
邮件操作:POP3协议<3>
获取邮件正文的内容
获取邮件中的HTML页面
下面的函数假定已经将邮件的几个部分分开
1
private
string
GetText_Html(
string
PartSrc)
2
{
3
//
获取传输编码
4
Regex TransferEncoding_Regex
=
5
new
Regex(
@"
Content-Transfer-Encoding: (.*?)\r\n
"
, RegexOptions.IgnoreCase);
6
Match MacthTransfer
=
TransferEncoding_Regex.Match(PartSrc);
7
//
截取出的内容文本
8
string
ContentStr
=
""
;
9
//
用正则表达式截取内容部分
10
//
正则表达式声明中一定写上不区分大小写
11
Regex HtmlContent_Regex
=
12
new
Regex(
@"
<html([\s\S]*?)</html>
"
, RegexOptions.IgnoreCase);
13
Match MatchHtml
=
HtmlContent_Regex.Match(PartSrc);
14
if
(MatchHtml
!=
null
)
15
{
16
ContentStr
=
MatchHtml.Groups[
1
].Value;
17
}
18
//
去除首尾的\r\n
19
ContentStr
=
ContentStr.TrimStart(
new
char
[]
{
'
\r
'
,
'
\n
'
}
);
20
ContentStr
=
ContentStr.TrimEnd(
new
char
[]
{
'
\r
'
,
'
\n
'
}
);
21
22
//
根据传输编码处理数据
23
if
(MacthTransfer.Groups[
1
].Value
==
"
base64
"
)
24
{
25
return
Encoding.GetEncoding(
"
GB2312
"
).GetString(Convert.FromBase64String(ContentStr));
26
}
27
else
//
暂时将base64外的文本传输编码默认为打印机编码 quoted-printable
28
{
29
ArrayList CBuffer
=
new
ArrayList();
30
for
(
int
i
=
0
; i
<
ContentStr.Length; i
++
)
31
{
32
if
(ContentStr[i]
==
'
=
'
)
33
{
34
i
++
;
35
if
(ContentStr[i]
!=
'
\r
'
)
36
{
37
byte
vByte;
38
if
(
byte
.TryParse(ContentStr.Substring(i,
2
),
39
NumberStyles.HexNumber,
null
,
out
vByte))
40
CBuffer.Add(vByte);
41
}
42
i
++
;
43
}
44
else
if
(ContentStr[i]
!=
'
\n
'
) CBuffer.Add((
byte
)ContentStr[i]);
45
}
46
return
Encoding.Default.GetString((
byte
[])CBuffer.ToArray(
typeof
(
byte
)));
47
}
48
}
Tag标签:
C#
,
POP3
,
正则表达式
,
邮件
,
Base64
,
编码
posted @ 2008-05-20 19:13
永远燃烧
阅读(12)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
不能不说的C#特性-扩展方法
不能不说的C#特性-对象集合初始化器
关于yahoo邮箱如何开通POP access服务
全面剖析C#正则表达式
和 C#4.0 团队面对面
传网易与暴雪达成星际争霸2代理协议
大家接项目时,签协议或合同时都要注意什么内容
Ext 的开源协议可以免费在我公司的项目中使用么?
飞信协议研究
qq协议分析怎么没人讨论
相关链接:
最新IT新闻:
雅虎新闻首页改版,宽屏、共享、组件
传阿里投资淘宝超40亿元 应对百度C2C
传雅虎最快本月将宣布收购美国在线
周一美国股市科技股惨跌 纳综指创4年新低
关于Firefox 3你不知道的八个功能
<
2008年5月
>
日
一
二
三
四
五
六
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我的标签
ASP.NET(26)
C#(18)
SQL(13)
数据库(13)
HTML(11)
GridView(8)
Javascript(8)
正则表达式(7)
存储过程(6)
外连接(5)
随笔档案
(53)
2008年9月 (13)
2008年8月 (6)
2008年7月 (10)
2008年6月 (4)
2008年5月 (20)
相册
POP3协议操作
国之利器
最新评论
阅读排行榜
1. ACCESS的Ole对象读取(485)
2. JS收集<1>:遍历CHECKBOX(144)
3. JS收集<2>:图片上传_限制格式、类型、尺寸(131)
4. GridView的操作<1>:基本操作(编辑、更新、取消)(115)
5. GridView的操作<1>:基本操作(行和单元格绑定)(70)
评论排行榜
1. T-SQL存储过程:产品分页列表提取(1)
2. PL/SQL存贮过程:类别链条获取(0)
3. Oracle学习<2>:权限(0)
4. ASP.NET小收集<3>:页面权限管理(0)
5. JS收集<3>:限制输入格式(0)
60天内阅读排行
1. ASP.NET小收集<8>:获取可替换部分标签(31)
2. GridView的操作<2>:事件冲突(26)
3. ASP.NET小收集<6>:IIS添加.NET支持(22)
4. T-SQL存储过程:获取属性列表Html代码(18)
5. T-SQL小收集<1>:为已经存在的表添加唯一约束(18)