具体的过程步骤如下: 第一步:打开VS.Net,新建一个工程,在项目类型里选择“Visual C#项目”,在模板里选择“Windows 应用程序”,工程名不妨为“MailReceiver”,最后点击“确定”按钮。 第二步:布置主界面。先往窗体上添加如下控件:六个Label控件、四个TextBox控件、一个RichTextBox控件、一个CheckBox控件、一个ListBox控件以及三个Button控件。各个控件的属性设置如下表所示: Form1(主窗体) Text属性 POP3邮件接收程序 MaximizeBox属性 False Label1 Text属性 POP3 服务器地址: TextAlign属性 MiddleRight Label2 Text属性 用户名: TextAlign属性 MiddleRight Label3 Text属性 密码: TextAlign属性 MiddleRight Label4 Text属性 信息: TextAlign属性 MiddleLeft Label5 Text属性 邮件编号: TextAlign属性 MiddleLeft Label6 Text属性 状态: TextAlign属性 MiddleLeft PopServer、Username、Password、MailNum(TextBox控件) Text属性 (均为空) Password的PasswordChar属性 * Message(RichTextBox控件) Text属性 (为空) BackupChBox(CheckBox控件) Text属性 在邮件服务器上保留备份 Status(ListBox控件) ItemHeight属性 12 Connect(Button控件) Text属性 连接 FlatStyle属性 Flat Disconnect (Button控件) Text属性 断开连接 FlatStyle属性 Flat Enabled属性 False Retrieve(Button控件) Text属性 收取邮件 FlatStyle属性 Flat Enabled属性 False 其他属性均可为默认值。在设置完以上的各个控件属性后,对主窗体进行合理的布局,则可得到最终的界面示意图如下所示:
第三步:代码编写。首先因为程序中运用到网络编程的一些重要的类,如:TcpClient、NetworkStream,所以在程序的开头处需添加以下名字空间(Namespace): using System.Net; using System.Net.Sockets; using System.IO; 接着,为我们的类添加以下一些公有的数据成员: public TcpClient Server; public NetworkStream NetStrm; public StreamReader RdStrm; publicstring Data; publicbyte[] szData; publicstring CRLF = "/r/n"; 最后,便是三个按钮的消息响应函数,这三个函数是程序的主体部分。其中Connect按钮的消息响应函数完成了到POP3服务器的连接工作,并根据用户名和密码进行登录。如果一切顺利,则再向服务器发送STAT命令从而获得邮箱中邮件的相关信息:邮件数量和大小,最终完成连接。其函数实现如下:list1 而Disconnect按钮的消息响应函数则通过向服务器发送QUIT命令来终止和邮件服务器的连接,实现比较简单,具体函数如下:list2 最后,Retrieve按钮的消息响应函数则根据用户在邮件编号文本框中的输入来取得相应的邮件,它向服务器发送的命令为RETR,并根据返回的信息判断邮件的有无。若返回信息的第一个字符为“+”,则表示+OK,也即成功;若为“-”,则表示-ERR,也即为失败。在成功的情况下,若用户选择了“在邮件服务器上保留备份”,则收取邮件后不删除服务器上的备份,否则用DELE命令来进行相应的删除。函数实现如下:list3 最后一步便是保存你的劳动成果,再进行编译、建立并运行了,最终的图示我已经在文章的开头处给出了,还行吧。到处为止,我们已经完成了POP3邮件接收程序的全部工作了。从中,我们不难发现运用C#完成一些网络实用编程是非常容易的。只要我们掌握了其中的原理,具体的编程工作就变得非常的轻松而且有条理。即使以前你对POP3邮件接收的实现一无所知,我想在看完这篇文章后,你对它至少会有了个大概的了解。不过,还要指出的是这只是一个很简单的实例,如果要在实际中应用,则还需大大的改进,有兴趣的读者不妨一试。源代码文件为MailReceiver.rar 



