Shared Sub SearchMail(server As String, user As String, password As String, useSsl As Boolean, oggetto As String, path As String)
Try
' Create a folder named "inbox" under current directory
' to save the email retrieved.
Dim localInbox As String = path
Dim di As IO.DirectoryInfo =
New IO.DirectoryInfo(path)
For Each oFile As IO.FileInfo In di.GetFiles()
oFile.Delete()
Next
' If the folder is not existed, create it.
If Not Directory.Exists(localInbox) Then
Directory.CreateDirectory(localInbox)
End If
' Most modern email server require SSL/TLS connection,
' set useSsl to true Is recommended.
Dim oServer As New MailServer(server, user, password, useSsl,
ServerAuthType.AuthLogin, ServerProtocol.Imap4)
' IMAP4 port Is 143, IMAP4 SSL port Is 993.
oServer.Port = If(useSsl, 993, 143)
Console.WriteLine("Connecting server ...")
Dim oClient As New MailClient("TryIt")
oClient.Connect(oServer)
' Search the emails whose internal date is within 8-AUG-2008 and sender contains "John"
Dim infos() As MailInfo = oClient.SearchMail("SUBJECT """ & oggetto & """")
Console.WriteLine("Total {0} email(s) found", infos.Length)
For i As Integer = 0 To infos.Length - 1
Console.WriteLine("Checking {0}/{1} ...", i + 1, infos.Length)
Dim info As MailInfo = infos(i)
' Generate an unqiue email file name based on date time.
Dim fileName As String = _generateFileName(i + 1)
Dim fullPath As String = String.Format("{0}\{1}", localInbox, fileName)
Console.WriteLine("Downloading {0}/{1} ...", i + 1, infos.Length)
Dim oMail As Mail = oClient.GetMail(info)
' Save email to local disk
oMail.SaveAs(fullPath, True)
' Mark email as deleted on server.
'' Console.WriteLine("Deleting ... {0}/{1}", i + 1, infos.Length)
'' oClient.Delete(info)
Next
Console.WriteLine("Disconnecting ...")
' Delete method just mark the email as deleted,
' Quit method expunge the emails from server permanently.
'' oClient.Quit()
Console.WriteLine("Completed!")
Catch ep As Exception
Console.WriteLine("Error: {0}", ep.Message)
End Try