Imports Independentsoft.Email Imports Independentsoft.Email.Imap Imports Independentsoft.Email.Mime Imports DigitalData.EMLProfiler.ClassCurrent Imports DigitalData.Modules.Logging Public Class clsEmailIMAP Private Shared Logger As DigitalData.Modules.Logging.Logger Sub New(LogConf As LogConfig) Logger = LogConf.GetLogger End Sub 'Private Shared Sub OnWriteLog(ByVal sender As Object, ByVal e As WriteLogEventArgs) ' Logger.Info(e.Log) 'End Sub Public Function IMAP_COLLECT() Try Logger.Info(String.Format("Working on IMAP_COLLECT.....")) Logger.Debug(String.Format("Working on IMAP_COLLECT.....")) Dim client As New ImapClient(MAIL_SERVER, MAIL_PORT) 'If LOG_ERRORS_ONLY = False Then ' Dim emaillogger As New Independentsoft.Email.Logger(My.Application.Info.DirectoryPath & "\Log\IDSoftMailLog.txt") ' AddHandler emaillogger.WriteLog, AddressOf OnWriteLog 'client.Logger = emaillogger 'End If client.ValidateRemoteCertificate = False client.Connect() client.Login(MAIL_USER, MAIL_USER_PW) client.SelectFolder("Inbox") Dim envelopes As Envelope() = client.ListMessages() For i As Integer = 0 To envelopes.Length - 1 If Not IsNothing(envelopes(i).Subject) Then 'If envelopes(i).Subject.ToString.ToUpper.Contains("[PROCESSMANAGER]") Or envelopes(i).Subject.ToString.ToUpper.Contains("[ADDI]") Then Logger.Info($"Working on email: UniqueID: {envelopes(i).UniqueID} - Subject:{envelopes(i).Subject} - Date {envelopes(i).Date.ToString}") Dim message As Mime.Message = client.GetMessage(envelopes(i).UniqueID) If Not IsNothing(message) Then MAIL_LIST.Add(message) End If 'End If End If Next client.Disconnect() Logger.Debug("IMAP_COLLECT finished!") Return True Catch ex As Exception Logger.Error(ex, "Unexpected Error in IMAP COLLECT:") Return False End Try End Function Public Function TEST_IMAP_COLLECT(INBOXNAME As String, MYMAIL_SERVER As String, MYMAIL_PORT As Integer, MYMAIL_USER As String, MYMAIL_USER_PW As String) Try Logger.Info(String.Format("Working on TEST_IMAP_COLLECT.....")) Dim client As New ImapClient(MYMAIL_SERVER, MYMAIL_PORT) 'If LOG_ERRORS_ONLY = False Then ' Dim emaillogger As New Independentsoft.Email.Logger(My.Application.Info.DirectoryPath & "\Log\IDSoftMailLog.txt") ' AddHandler emaillogger.WriteLog, AddressOf OnWriteLog 'client.Logger = emaillogger 'End If client.Connect() client.Login(MYMAIL_USER, MYMAIL_USER_PW) client.SelectFolder(INBOXNAME) Dim envelopes As Envelope() = client.ListMessages() For i As Integer = 0 To envelopes.Length - 1 If Not IsNothing(envelopes(i).Subject) Then 'If envelopes(i).Subject.ToString.ToUpper.Contains("[PROCESSMANAGER]") Or envelopes(i).Subject.ToString.ToUpper.Contains("[ADDI]") Then MsgBox($"Working on email: UniqueID: {envelopes(i).UniqueID} - Subject:{envelopes(i).Subject} - Date {envelopes(i).Date.ToString}") Dim message As Mime.Message = client.GetMessage(envelopes(i).UniqueID) End If Next client.Disconnect() Logger.Info("TEST_IMAP_COLLECT finished!") Return True Catch ex As Exception Logger.Error(ex, "Unexpected Error in TEST_IMAP_COLLECT:") Return False End Try End Function End Class