1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| Public Function ProcessMail(ByVal maill As String, ByVal pwd As String, last As String, tmpNode As XmlNode)
Dim counter = 0
Dim uidlManager As UIDLManager = New UIDLManager()
Dim client As MailClient = New MailClient("TryIt")
AddHandler client.OnAuthorized, AddressOf UzineMail.OnAuthorized
AddHandler client.OnConnected, AddressOf UzineMail.OnConnected
AddHandler client.OnIdle, AddressOf UzineMail.OnIdle
AddHandler client.OnSecuring, AddressOf UzineMail.OnSecuring
AddHandler client.OnReceivingDataStream, AddressOf UzineMail.OnReceivingDataStream
Console.WriteLine("Connecting ...")
Dim server As MailServer = UzineMail._buildServer(maill, pwd)
client.Connect(server)
uidlManager.Load(uidlfile)
UzineMail._setMailRange(client)
Console.WriteLine("Retrieving email list ...")
Dim infos As MailInfo() = client.GetMailInfos()
Console.WriteLine("Total {0} email(s)", infos.Length)
uidlManager.SyncUIDL(server, infos)
uidlManager.Update()
For i As Integer = 0 To infos.Length - 1
Try
counter = counter + 1
Console.WriteLine("Checking {0}/{1}...", i + 1, infos.Length)
Dim info As MailInfo = infos(i)
Console.WriteLine("UID : " + info.UIDL)
If Convert.ToInt32(info.UIDL) > Convert.ToInt32(last) Then
If uidlManager.FindUIDL(server, info.UIDL) IsNot Nothing Then
Continue For
End If
Console.WriteLine("Retrieving {0}/{1}...", i + 1, infos.Length)
Console.WriteLine(info.UIDL + info.EWSChangeKey + info.EWSPublicFolder + info.PostItem)
Dim mail As Mail = client.GetMail(info) |
Partager