当前位置:编程学习 > VB >>

邮件检查程序(二)

 

 

下面是Winsock的DataArrival事件中的代码。该代码的绝大部分是注释以向你解释程序所做的每一步。如果你觉得闷的话就跳过不看就是了。

 

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)

 

Dim strData As String

 

Static intMessages As Integer 要下载的消息数(也就是邮件数)

Static intCurrentMessage As Integer 已下载的消息数

Static strBuffer As String 正在下载的消息的缓冲

 

将收到的数据存放在strData变量中

Winsock1.GetData strData

 

If Left$(strData, 1) = "+" Or m_State = POP3_RETR Then

    如果来自服务器的回应的第一个字符为加号

    表明服务器已收到你发出的命令并等待下一个命令

    如果服务器返回的字符串的第一个字符为减号,那我们在这里就什么也做不了。

    操作被转到ELSE后面部分的代码。

    当处于数据接收状态时,来自服务器的字符串的第一个字符就可能不是加号或减号,所以要用到第二个条件

    m_State = POP3_RETR (正在接收消息的状态)

Select Case m_State

        Case POP3_Connect

       

        重置消息数

        intMessages = 0

       

        改变进程状态

        m_State = POP3_USER

       

        向服务器发出带参数的USER命令

        参数是信箱名

        别忘了在命令的最后加上vbCrLf

        Winsock1.SendData "USER " & txtUserName & vbCrLf

        这是本次事件的结束,下次开始跳过上一部分,而从下面开始执行

        Case POP3_USER部分

    Case POP3_USER

       

        如果用户名检查通过就进行下一部分

                现在向服务器发送你的密码

       

        改变进程的状态

        m_State = POP3_PASS

       

        向服务器发送PASS命令,以你的密码为参数

                Winsock1.SendData "PASS " & txtPassword & vbCrLf

    Case POP3_PASS

        

        如果服务器通过了你的身份验证,我们就可以向服务器发送STAT命令了

                作为对STAT的回应,服务器会传回你邮箱中的消息数及大小

       

        改变当前进程的状态

        m_State = POP3_STAT

       

补充:软件开发 , Vb ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,