网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.文件系统控件方案.
.处理加了admin888的MDB文件.
.如何通过VB获取网卡地址.
.VB编程之路-如何让界面美化.
.开机,自动更换墙纸.
.VB开发通讯软件.
.在vb中删除带子文件夹的文件夹.
.SendMessage函数巧应用.
.禁用Alt-Tab或Ctrl-Alt-Del.
.减少DoEvents语句的数量.
.VisualBasic实现某一天的下/上一.
.利用VB进行多媒体程序设计初步.
.DataGrid控件的使用二.
.MsComm文字传输.
..NET和VB编程创建SQLServer.
.有关Tray系统盒的VBAPI函数.
.在VB中实现文件上传.
.用VB设计一个定时闹钟程序.
.不方便的Msdn--VB6.0的Help.
.获取桌面窗口图象.

VB邮件检查程序(一)

发表日期:2006-2-27


按下表所示设置各控件的属性。

控件名称描述
TextboxtxtHost用于输入邮件服务器的名称或地址
TextboxtxtUserName输入用户名
TextboxtxtPassword输入密码
TextboxtxtBody显示邮件内容
ListviewlvMessages显示邮件清单
CommandButtoncmdCheckMail用于启动接收并显示邮件的子程序
CommandButtoncmdExit退出程序

将名为txtBody的文本框的Multiline属性设为True,Scrollbars属性设为3-Both。选择ListView控件,打开其属性对话框,在“列首”标签页中插入四个列,文本分别为:"From","Subject","Date","Size",然后将该控件的View属性设为3-lvwReport。

直观的界面显示你是如何使用本程序的。首先输入邮件服务器的名称或地址,然后是你的用户名和密码。最报按检查邮件按钮。接下来,我们就会看到在ListView中显示的邮件列表了。点选其中的一项,邮件的内容就会显示在下面的文本框中。

从程序的外观及VB由事件驱动的本质,我们可以猜出我们只需要处理两个事件:cmdCheckMail_Click和lvMessages_ItemClick.至于cmdExit中的事件我想就不必说了。先别急,让我们一步步来看看本程序的代码是怎样的。首先看看“检查邮件”按钮。当你按下这个按钮后,程序会首先检查文本框中的内容,然后调用Winsock的Connect方法连上远程服务器。下面是程序代码:

PrivateSubcmdCheckMail_Click()

'检查除txtBody之外所有文本框的内容是否为空
ForEachcInControls
IfTypeOfcIsTextBoxAndc.Name<>"txtBody"Then
IfLen(c.Text)=0Then
MsgBoxc.Name&"can'tbeempty",vbCritical
ExitSub
EndIf
EndIf
Next
'改变当前进程状态的值
m_State=POP3_Connect
'关闭socket以防它已被另一个进程打开
Winsock1.Close
'重置localport的值,WindowsSocket会自动寻找一个新值
'这样做是为了防止出现"地址正在被使用"的错误,
'这种情况通常出现在Winsock控件已被前一个进程所使用
Winsock1.LocalPort=0
'POP3服务器通常用端口110来等待连接请求
'因此我们要让Winsock控件用这个端口连上服务器。
Winsock1.ConnecttxtHost,110

EndSub

除了下面这个语句之外,其它都一目了然。

m_State=POP3_Connect

现在就让我来解释一下这个语句。当触发了cmdCheckMail_Click事件后,所运行的程序代码的目的是要连上远程邮件服务器。下面要进行的操作就转由在Winsock控件的DataArrival事件中的代码来控制了。

每次当Winsock收到数据时,都会触发DataArrival事件。根据已收到的数据和你所发出的命令,程序才知道应执行在该事件中的哪一部分代码,以真正完成数据的接收。

为了让程序记住你上次发出的命令,或者说当前进程的状态,我们使用了m_State变量。该变量存放你事先定义好的一个特殊的数据类型:POP3States的值。

PrivateEnumPOP3States
POP3_Connect
POP3_USER
POP3_PASS
POP3_STAT
POP3_RETR
POP3_DELE
POP3_QUIT
EndEnum->

上一篇:VB邮件检查程序(二) 人气:4621
下一篇:PING一个IP地址(向它发送一个数据包并等待回应)) 人气:3772
浏览全部Visual Basic的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐