您的位置:首页 > 编程语言 > C#

c#通过IMAP协议获取未读邮件数量

2008-11-06 09:32 323 查看
最近公司在用.NET开发一个城域网系统,里面应用到一个电子邮件系统是用php开发,与项目是独立开来的,利用了单点登陆技术在基础平
台中登陆到各子系统中,现在要在登陆到基础平台首页上显示登陆用户在子系统(邮件系统)中未读邮件信息的条数,由于对协议这一块不是很了解,所以刚开始做
的时候一头雾水,只晓得可以利用pop3协议可以获取邮件,后来咨询邮件系统那边的开发人员,他们说他们在php里面直接调用有内置函数可以获取,在.
net中不行,用pop3也不行,利用pop3协议只能获取电子邮件中所有邮件的信息列表,不能获取邮件的状态,但IMAP协议可以获取邮件的状态,有了
点思路于是找关于IMAP的资料,最后在一个老外的一篇文章里找到相关的资料,也是获取利用IMAP协议获取邮件的未读数量,是用VB做的,于是我按照上
面的思路进行编写代码,运行通过,心里一阵窃喜,-_-,终于搞定了,这里只简单一个示例,通过LumiSoft.Net第三方组件有处理协议方面的强大
功能,虽然没啥很高技术含量,也可以给遇到这方面问题的哥们一些参考:

代码下载

强大的处理协议的第三方组件

一.本文代码如下:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using LumiSoft.Net.IMAP;

using LumiSoft.Net.IMAP.Client;

namespace CommonLibrary.Mail

{

public class MailsInfo

{

/// <summary>

/// 获取未读邮件数量

/// </summary>

/// <param name="mailServer">邮件服务器地址</param>

/// <param name="username">邮箱用户名</param>

/// <param name="password">邮箱密码</param>

/// <returns></returns>

public static int GetUnReadMails(string mailServer, string username, string password)

{

IMAP_Client IMAPServer = new IMAP_Client();

try

{

//连接邮件服务器通过传入邮件服务器地址和用于IMAP协议的端口号

IMAPServer.Connect(mailServer, 143);

//登陆邮箱

IMAPServer.Authenticate(username, password);

IMAPServer.SelectFolder("INBOX");

if (IMAPServer.GetUnseenMessagesCount() == 1)

{

return 1;

}

else

{

return IMAPServer.GetUnseenMessagesCount();

}

}

catch (Exception ex)

{

throw ex;

}

finally

{

IMAPServer.Disconnect();

}

}

}

}

(说明:sina,126,qq等邮箱经测试好像都不支持IMAP协议连接,只有支持IMAP协议的邮件系统才可以使用IMAP协议获取邮件信息)



二.总结:

POP3协议,SMPT协议,IAMP协议介绍:

pop3:(Post Office Protocal
3),3是它的版本,是目前使用的主流版本。POP3是客户-服务器协议,其中电子邮件的接收需要一个收件服务器,邮件下载到本地计算机上所有一次,从而
使离线阅读更轻松,可以指定是否保留副本的邮件在服务器上。 The default port number for POP3 is
110.默认端口数目为POP3是110.



SMTP(Simple Mail Transfer
Protocal):简单Mail传输协议,是个请求/响应协议,它监听25号端口,用于接收用户的Mail请求,并与远端Mail服务器建立SMTP连
接。
独立于特定的传输子系统,它可以是电子邮件从客户机传输到服务器;也可以是从某一个服务器传输到另一个服务器;且只需要可靠有序的数据流信道支持。
SMTP 重要特性之一是其能跨越网络传输邮件,即SMTP 邮件中继。通常,一个网络可以由公用互联网上 TCP 可相互访问的主机、防火墙分隔的
TCP/IP 网络上 TCP 可相互访问的主机,及其它 LAN/WAN 中的主机利用非 TCP 传输层协议组成。使用
SMTP,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。



IMAP ( Internet消息访问协议)是一种标准协议,用于访问电子邮件从您的本地服务器。的IMAP
(最新版本的IMAP第4版)是一个客户机/服务器协议在电子邮件收到并为您举行的由您的因特网服务器。您(或您的电子邮件客户端)可以查看刚才的标题和
发件人的信件,然后决定是否下载该邮件。您还可以创建和操纵多个文件夹或邮箱的服务器上,删除邮件,或寻找某些地区或整个说明。需要不断的IMAP访问期
间服务器时,你的工作与您的邮件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: