挺早之前整理的一套邮件信息查询功能。
后半部分贴入完整前后台代码。
首先需要添加引用OpenPop.NET类,版本为2.0.5:
类库下载地址:http://download.csdn.net/download/xianglikai1/9950364
共分为两个页面:1.邮件列表页面,不包含邮件内容
2.选中的邮件的全部内容,由1页面传值来查询显示
页面一、邮件列表页面:
1.项目名称上右键添加引用:
2.使用Repeater来显示邮件列表,客户端页面:
3.重点,服务端
页面一、客户端代码:
<%@
Page
Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
mail接收.aspx.cs
"
Inherits
=
"
测试_mail接收
"
%>
<!
DOCTYPE
html
>
<
head
runat
=
"
server
"
>
<
meta
http
-
equiv
=
"
Content-Type
"
content
=
"
text/html; charset=utf-8
" /
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"
form1
"
runat
=
"
server
"
>
<
asp
:
Repeater
ID
=
"
Repeater1
"
runat
=
"
server
"
>
<
HeaderTemplate
>
<
ul
>
</
HeaderTemplate
>
<
ItemTemplate
>
<
li
>
<
a
href
=
"
Details.aspx?id=<%#Eval(
"
NO
"
) %>
"
>
<%#
Eval
(
"
Subject
"
)
%>
<%#
Eval
(
"
Date
"
)
%>
<%#
Eval
(
"
FromSender
"
)
%>
(
<%#
Eval
(
"
FromAddress
"
)
%>
)
</
a
>
</
li
>
</
ItemTemplate
>
<
FooterTemplate
>
</
ul
>
</
FooterTemplate
>
</
asp
:
Repeater
>
</
form
>
</
body
>
</
html
>
using
System
;
using
System
.
Collections
.
Generic
;
using
System
.
Linq
;
using
System
.
Web
;
using
System
.
Web
.
UI
;
using
System
.
Web
.
UI
.
WebControls
;
using
OpenPop
.
Pop3
;
using
OpenPop
.
Mime
;
public
partial
class
测
试
_mail
接
收
:
System
.
Web
.
UI
.
Page
{
protected
void
Page_Load
(
object
sender
,
EventArgs
e
)
{
List
<
MailItem
>
list
=
new
List
<
MailItem
>
(
)
;
//实例化pop3访问对象
Pop3Client
pop3
=
new
Pop3Client
(
)
;
//连接到邮件服务器
pop3
.
Connect
(
"
pop.126.com
"
,
110
,
false
)
;
//连接方法("连接服务器",端口号,是否使用安全)
//身份验证
pop3
.
Authenticate
(
"
xianglikai77@126.com
"
,
"
邮箱密码
"
)
;
//读邮件列表
//1、获取邮件的个数
int
count
=
pop3
.
GetMessageCount
(
)
;
//2、遍历显示出来
for
(
int
i
=
1
;
i
<=
count
;
i
++
)
//i必须从1开始,邮件个数不能小于0
{
try
{
Message
msg
=
pop3
.
GetMessage
(
i
)
;
MailItem
data
=
new
MailItem
(
)
;
data
.
NO
=
i
;
data
.
FromAddress
=
msg
.
Headers
.
From
.
Address
;
//发送者的邮箱地址
data
.
FromSender
=
msg
.
Headers
.
From
.
DisplayName
;
//发送者的名字
data
.
Date
=
msg
.
Headers
.
DateSent
;
//邮件的发送时间
data
.
Subject
=
msg
.
Headers
.
Subject
;
//邮件的标题/主题
if
(
msg
.
MessagePart
.
Body
!=
null
)
{
data
.
Body
=
msg
.
MessagePart
.
GetBodyAsText
(
)
;
//文件的主体部分,注意!!!
}
//注意:要使用GetBodyAsText方法,来获得解析后的主体文件,如果直接使用Body属性,则返回二进制string数组
list
.
Add
(
data
)
;
}
catch
{
continue
;
}
}
//断开连接
pop3
.
Disconnect
(
)
;
//绑定显示
Repeater1
.
DataSource
=
list
;
Repeater1
.
DataBind
(
)
;
}
}
public
class
MailItem
{
public
int
NO
{
get
;
set
;
}
//主键
public
string
FromSender
{
get
;
set
;
}
//发送人
public
string
FromAddress
{
get
;
set
;
}
//发送人邮箱地址
public
DateTime
Date
{
get
;
set
;
}
//邮件发送的时间
public
string
Subject
{
get
;
set
;
}
//标题
public
string
Body
{
get
;
set
;
}
//邮件体
}
1.客户端制作页面:
2.后台查询绑定数据:
页面二、客户端代码:
<%@
Page
Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
Details.aspx.cs
"
Inherits
=
"
测试_Details
"
%>
<!
DOCTYPE
html
>
<
head
runat
=
"
server
"
>
<
meta
http
-
equiv
=
"
Content-Type
"
content
=
"
text/html; charset=utf-8
"/
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"
form1
"
runat
=
"
server
"
>
<
div
>
标
题
:
<
asp
:
Label
ID
=
"
lblSubject
"
runat
=
"
server
"
Text
=
"
"
></
asp
:
Label
><
br /
>
发
送
者
:
<
asp
:
Label
ID
=
"
lblSender
"
runat
=
"
server
"
Text
=
"
"
></
asp
:
Label
><
br /
>
时
间
:
<
asp
:
Label
ID
=
"
lblDate
"
runat
=
"
server
"
Text
=
"
"
></
asp
:
Label
><
br /
>
内
容
:
<
asp
:
Label
ID
=
"
lblBody
"
runat
=
"
server
"
Text
=
"
"
></
asp
:
Label
><
br /
>
</
div
>
</
form
>
</
body
>
</
html
>
using
System
;
using
System
.
Collections
.
Generic
;
using
System
.
Linq
;
using
System
.
Web
;
using
System
.
Web
.
UI
;
using
System
.
Web
.
UI
.
WebControls
;
using
OpenPop
.
Pop3
;
using
OpenPop
.
Mime
;
public
partial
class
测
试
_Details
:
System
.
Web
.
UI
.
Page
{
protected
void
Page_Load
(
object
sender
,
EventArgs
e
)
{
if
(
Request
[
"
id
"
]
!=
null
)
{
//获取邮件代号
int
no
=
Convert
.
ToInt32
(
Request
[
"
id
"
])
;
//根据邮件代号查找邮件
Pop3Client
pop3
=
new
Pop3Client
(
)
;
//安全配置
pop3
.
Connect
(
"
pop.126.com
"
,
110
,
false
)
;
//帐号密码设置
pop3
.
Authenticate
(
"
xianglikai77@126.com
"
,
"
邮箱密码
"
)
;
Message
msg
=
pop3
.
GetMessage
(
no
)
;
//显示,数据绑定至四个label中
lblSubject
.
Text
=
msg
.
Headers
.
Subject
;
lblSender
.
Text
=
msg
.
Headers
.
From
.
DisplayName
+
msg
.
Headers
.
From
.
Address
;
lblDate
.
Text
=
msg
.
Headers
.
DateSent
.
ToString
(
)
;
if
(
msg
.
MessagePart
.
Body
!=
null
)
//126邮箱部分邮件报错,获取不到邮件正文,过滤掉
{
lblBody
.
Text
=
msg
.
MessagePart
.
GetBodyAsText
(
)
;
}
//断开连接
pop3
.
Disconnect
(
)
;
}
}
}