Download Mail Checker Sample Application (Mailcheck.zip, 7Kb)
我们假设你已经对POP3协议有所了解,而如果你了解RFC1939这个文件的内容就更好不过。RFC1939是官方发布的最后一个正式的文档以解释POP3协议的目的,命令和服务器的响应等等。幸运的是该文档并不十分的庞杂,不至于令你花费很长的阅读它。不过你不必花费大量的时间勾画其原理,在这里我们将向你解释这些。
启动Visual Basic建立一个标准EXE项目。添加MS Winsock控件,名字为Windows Common Controls-1。最后我们还要使用到ListView控件。同时我们还会用到一些其它的标准控件,如图所示:
如果你决定复制我们提供的代码并直接的使用这些,确定你放置的控件名字和相关属性与下面列表所述一致。
控件类型 |
名字 |
说明 |
Textbox |
txtHost |
表明邮件服务器的名字 |
Textbox |
txtUserName |
用户名的输入 (邮箱的鉴别名) |
Textbox |
txtPassword |
密码输入 |
Textbox |
txtBody |
显示邮件信息 |
Listview |
lvMessages |
显示邮件列表 |
Command Button |
cmdCheckMail |
该按钮用于激活接受邮件的相关进程。 |
Command Button |
cmdExit |
退出程序 |
将txtBody的属性设置为Multiline=True 和 Scrollbars= 3-Both。
ListView控件设置为4列,标题(Header)为:"From", "Subject", "Date", "Size",View属性设置为3-lvwReport。
程序简洁的界面可以令人很容易的使用,首先要输入邮件服务器的名字,用户名和密码,点击“Check e-Mail”按钮后,等待邮件显示在ListView控件的行中。当选择了列表中的邮件时,邮件的信息将会显示在txtBody控件中。
考虑到我们现有的情形,以及VB事件驱动的特性,可以推断我们只有两个事件需要处理:cmdCheckMail_Click 和 lvMessages_ItemClick.细心的读者会发现我们没有考虑退出程序的进程,也就是mbExit的按钮的进程,主要是该进程实在是偏离本篇文章的主题,所以不在此考虑。让我们将注意力集中在我们应该注意的地方,当用户点击”Check e-Mail”按钮的时候,会调用cmdCheckMail_Click进程。该进程要做两件事情,首先检查文本域的内容,并调用Wisock控件的Connect方法建立和邮件服务器的连接。
Private Sub cmdCheckMail_Click() It seems everything is clear besides this string: |
除了以下这句,其他的看起来都很清楚。
m_State = POP3_Connect
以下是解释。cmdCheckMail_Click 进程仅仅建立和邮件服务器的连接。所有下一步的工作都会由Winsock控件的DataArrival进行控制。
该事件在Winsock控件接收到服务器的数据时被激发,并且依照接收到数据作下一步的动作,也就意味着应用程序要理解接收到的代码的各部分。
为了让程序更灵活,应该记住最后一次发送的命令,另一个意思就是当前的会话的状态。m_State参数就是用来完成这件工作的,它用来接收特定数据类型POP3States预定义的值。
Private Enum POP3States Private m_State As POP3States |
下一页 | |
第二页 |