C# Pop3类:
我们就在该类的基础上设计C# Pop3类。C# Pop3类包含了邮件通讯所必须的基本属性、方法和事件。
首先,我们来设计其中的属性。该类应该包括主机名、端口号、用户名、密码、邮件数量、邮件总体积、邮件内容和状态信息等属性。其中前四个属性是可读又可写的,后四个属性是只可读的。
具体的设置如下:
- public string Host
- {
- get {return host;}
- set
- {
- if(value == null || value.Trim().Length == 0)
- {
- throw new ArgumentException("Invalid host name.");
- }
- host = value;
- }
- }
- ///
- /// 端口号
- ///
- public int Port
- {
- get {return port;}
- set
- {
- if(value <= 0)
- {
- throw new ArgumentException("Invalid port.");
- }
- port = value;
- }
- }
- ///
- /// 用户名
- ///
- public string UserName
- {
- get {return username;}
- set
- {
- if(value == null || value.Trim().Length == 0)
- {
- throw new ArgumentException("Invalid user name.");
- }
- username = value;
- }
- }
- ///
- /// 密码
- ///
- public string PassWord
- {
- get {return password;}
- set
- {
- if(value == null)
- {
- throw new ArgumentException("Invalid password.");
- }
- password = value;
- }
- }
- ///
- /// 邮件数量
- ///
- public int NumOfMails
- {
- get {return numofmails;}
- }
- ///
- /// 邮件总体积
- ///
- public double TotalSize
- {
- get {return totalsize;}
- }
- ///
- /// 邮件内容
- ///
- public string Body
- {
- get {return body;}
- }
- ///
- /// 状态信息
- ///
- public string Status
- {
- get {return status;}
- }
完成了该类的属性设计,我们接下来就完成该类的方法设计。该类主要的方法就一个ReceiveMessage(),顾名思义就是接收邮件信息的意思。通过这个对象,我们就可以更加方便的进行网络通讯的操作。不过,在具体介绍这个方法的实现以前,我先得向大家介绍一下邮件接收的基本原理。
其基本原理如下:
一开始便是客户端与服务器的连接。不过,在客户端连接到服务器之前,注意把端口设为POP3协议默认的110号。客户端连接服务器成功后,服务器会返回以下信息:
+OK……
字符+OK是POP3协议的返回信息。它的回应信息不像SMTP协议那样用丰富多变的数字表示,只有两个:+OK或者-ERR。其中,+OK表示连接成功,而-ERR则表示连接失败。接下来,客户端输入USER <用户名>,该命令告诉服务器你的用户名。注意,有些服务器会区分大小写字母的。
服务器返回+OK后,客户端输入PASS <口令>
服务器返回+OK后,还返回一些邮箱的统计信息,比如:+OK 1 message(s) [1304 byte(s)]不同的服务器返回的信息格式不太一样,所以我们可以用STAT命令来查看邮箱的情况。STAT命令的回应中有两个数字,分别表示邮件的数量和邮件的大小。以上介绍C# Pop3类。