麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

VB郵件檢查程序(二)

2019-11-18 17:27:37
字體:
來源:轉載
供稿:網友
下面是Winsock的DataArrival事件中的代碼。該代碼的絕大部分是注釋以向你解釋程序所做的每一步。如果你覺得悶的話就跳過不看就是了。

'如果來自服務器的回應的第一個字符為加號
'表明服務器已收到你發出的命令并等待下一個命令
'如果服務器返回的字符串的第一個字符為減號,那我們在這里就什么也做不了。
'操作被轉到ELSE后面部分的代碼。
'當處于數據接收狀態時,來自服務器的字符串的第一個字符就可能不是加號或減號,所以要用到第二個條件
'm_State=POP3_RETR(正在接收消息的狀態)
SelectCasem_State
CasePOP3_Connect
'
'重置消息數
intMessages=0
'
'改變進程狀態
m_State=POP3_USER
'
'向服務器發出帶參數的USER命令
'參數是信箱名
'別忘了在命令的最后加上vbCrLf
Winsock1.SendData"USER"&txtUserName&vbCrLf
'這是本次事件的結束,下次開始跳過上一部分,而從下面開始執行
'CasePOP3_USER部分
CasePOP3_USER

'如果用戶名檢查通過就進行下一部分
'現在向服務器發送你的密碼

'改變進程的狀態
m_State=POP3_PASS
'
'向服務器發送PASS命令,以你的密碼為參數
Winsock1.SendData"PASS"&txtPass
Word&vbCrLf
CasePOP3_PASS
'
'如果服務器通過了你的身份驗證,我們就可以向服務器發送STAT命令了
'作為對STAT的回應,服務器會傳回你郵箱中的消息數及大小
'
'改變當前進程的狀態
m_State=POP3_STAT
'
'現在發送STAT命令
Winsock1.SendData"STAT"&vbCrLf
CasePOP3_STAT
'
'服務器對STAT的回應看上去象這樣
'" OK00"(郵箱中沒有郵件)或" OK37564"
'(郵箱中有郵件).顯然,我們必須找到來自服務器返回的字符串中的第一個數字

intMessages=CInt(Mid$(strData,5,InStr(5,strData,"")-5))
IfintMessages>0Then
'
'如果郵箱中有郵件
'改變進程的狀態
m_State=POP3_RETR
'
intCurrentMessage=intCurrentMessage 1
'
'現在準備向服務器發送RETR命令
'以便接收第一條消息
Winsock1.SendData"RETR1"&vbCrLf
Else
'如果郵箱中沒有郵件就斷開同服務器的連接結束進程

m_State=POP3_QUIT
Winsock1.SendData"QUIT"&vbCrLf
MsgBox"Youhavenotmail.",vbInformation
EndIf
CasePOP3_RETR
'在接收郵件時執行下面執行下面的代碼
'郵件可能會很大,并觸發多次DataArrival事件
'接收到的數據被存放在strBuffer變量中
strBuffer=strBuffer&strData
'
'用下面的語句判斷消息的結束
'郵件是以小數點結尾的
IfInStr(1,strBuffer,vbLf&"."&vbCrLf)Then
'
'郵件下載完畢
'
'刪除由服務器返回的第一行字符串
strBuffer=Mid$(strBuffer,InStr(1,strBuffer,vbCrLf) 2)
'
'刪除最后一個只有小數點的字符
strBuffer=Left$(strBuffer,Len(strBuffer)-3)
'
'把消息存放在m_colMessages集合中
Setm_oMessage=NewCMessage
m_oMessage.CreateFromTextstrBuffer
m_colMessages.Addm_oMessage,m_oMessage.MessageID
Setm_oMessage=Nothing
'
'清空緩沖,準備接收下一條郵件
strBuffer=""
'
'將已收的郵件數同服務器目前的郵件數作比較
IfintCurrentMessage=intMessagesThen
'如果相等,表示已接收完所有的郵件
'所以發送一個QUIT命令給服務器
m_State=POP3_QUIT
Winsock1.SendData"QUIT"&vbCrLf
Else
'如果二者不等,表明還有郵件沒有接收

intCurrentMessage=intCurrentMessage 1
'
'改變當前進程的狀態
m_State=POP3_RETR
'
'向服務器發出RETR命令接收下一個郵件
Winsock1.SendData"RETR"&CStr(intCurrentMessage)&vbCrLf
EndIf
EndIf
CasePOP3_QUIT
'不管我們收到什么樣的郵件,記得關閉同服務器的連接
Winsock1.Close
'現在調用ListMessages子程序,以便在ListView中顯示收到的郵件
CallListMessages
EndSelect
Else
'下面的錯誤處理的代碼
'只須關閉socket并將來自服務器的回應顯示出來就行了。
'即使是那些高級的郵件接收程序所做也不外如此
Winsock1.Close
MsgBox"POP3Error:"&strData,_
vbExclamation,"POP3Error"
EndIf

EndSub

一切看上去都一目了然,除了下面的語句:

Setm_oMessage=NewCMessage
m_oMessage.CreateFromTextstrBuffer
m_colMessages.Addm_oMessage,m_oMessage.MessageID
Setm_oMessage=Nothing->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一本一道久久久a久久久精品91 | 欧美激情在线播放 | 久久久久久免费 | 免费久久久久久 | 国产精品久久久久久久久岛 | av成人在线免费观看 | 亚洲国产综合在线观看 | 大片毛片 | lutube成人福利在线观看 | 成人在线视频在线观看 | 久久久成人动漫 | 久久久久久久久久久久久九 | 中文字幕综合在线观看 | 福利免费在线观看 | 国产午夜小视频 | 久久精品99久久久久久2456 | 成人羞羞在线观看网站 | 久久国产精品久久久久 | 欧美级毛片| 青草久久网 | 久久99精品国产99久久6男男 | 性高跟鞋xxxxhd4kvideos | 久久精品国产清自在天天线 | 老师你怎么会在这第2季出现 | 成年性羞羞视频免费观看无限 | 亚洲欧美不卡视频 | 久久99精品久久久久久久久久久久 | 91一区二区三区久久久久国产乱 | 一级成人毛片 | 国产免费一区视频 | 黄色特级毛片 | 性大片1000免费看 | 国产午夜精品一区二区三区四区 | 视频一区国产精品 | 成人免费观看49www在线观看 | 黄色av免费网站 | 九九热精品在线视频 | 久久国产精品网 | 成年人小视频在线观看 | 午夜影院在线免费观看 | 一级做受毛片免费大片 |