MS Bugfixing mit Vektofeld Boolean
This commit is contained in:
@@ -102,7 +102,7 @@ Public Class clsEmailIMAP
|
||||
Try
|
||||
Logger.Debug(String.Format("Working on IMAP_COLLECT Independentsoft..."))
|
||||
Dim oClient As New Independentsoft.Email.Imap.ImapClient(Server, Port)
|
||||
If IsoftLog <> "" Then
|
||||
If IsoftLog <> "" And LogConfig.Debug = True Then
|
||||
Dim iLogger As New Independentsoft.Email.Logger(IsoftLog)
|
||||
AddHandler iLogger.WriteLog, AddressOf OnWriteLog
|
||||
oClient.Logger = iLogger
|
||||
@@ -114,6 +114,7 @@ Public Class clsEmailIMAP
|
||||
Try
|
||||
oClient.Login(Username, Password, AuthenticationType.Login)
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Error while loginImap.now trying Ntlm-Auth: " & ex.Message)
|
||||
Try
|
||||
oClient.Login(Username, Password, AuthenticationType.Ntlm)
|
||||
Catch ex1 As Exception
|
||||
@@ -124,47 +125,107 @@ Public Class clsEmailIMAP
|
||||
End Try
|
||||
Logger.Debug("Logged in...")
|
||||
oClient.SelectFolder(Inbox)
|
||||
Dim oEnvelopes As Independentsoft.Email.Imap.Envelope() = oClient.ListMessages()
|
||||
|
||||
Dim coSearchCriteria As New SearchCriteria()
|
||||
coSearchCriteria.Unseen = True
|
||||
Dim oCount As Integer = 0
|
||||
For i As Integer = 0 To oEnvelopes.Length - 1
|
||||
If IsNothing(oEnvelopes(i).Subject) Then
|
||||
Logger.Debug("Attention...Subject is nothing!!")
|
||||
End If
|
||||
'If envelopes(i).Subject.ToString.ToUpper.Contains("[PROCESSMANAGER]") Or envelopes(i).Subject.ToString.ToUpper.Contains("[ADDI]") Then
|
||||
Logger.Info($"Working on email: UniqueID: {oEnvelopes(i).UniqueID} - Subject:{oEnvelopes(i).Subject} - Date {oEnvelopes(i).Date.ToString}")
|
||||
Logger.Debug($"Working on email: UniqueID: {oEnvelopes(i).UniqueID} - Subject:{oEnvelopes(i).Subject} - Date {oEnvelopes(i).Date.ToString}")
|
||||
Dim oUniqueID As Integer() = oClient.Search(coSearchCriteria)
|
||||
|
||||
Dim oMessage As Mime.Message = oClient.GetMessage(oEnvelopes(i).UniqueID)
|
||||
If Not IsNothing(oMessage) Then
|
||||
oCount += 1
|
||||
MAIL_LIST.Add(oMessage)
|
||||
If IsTest = True Then
|
||||
MsgBox($"{oUniqueID.Count} unseen messages! (oUniqueID.Length: {oUniqueID.Length.ToString})")
|
||||
Dim oFoundMessages1 As Message() = New Message(oUniqueID.Length - 1) {}
|
||||
|
||||
For i As Integer = 0 To oUniqueID.Length - 1
|
||||
oFoundMessages1(i) = oClient.GetMessage(oUniqueID(i))
|
||||
MsgBox($"Message {i.ToString} - {oFoundMessages1(i).Subject}...")
|
||||
Next
|
||||
End If
|
||||
|
||||
Dim oFoundMessages As Message() = New Message(oUniqueID.Length - 1) {}
|
||||
Dim oEnvelopes As Independentsoft.Email.Imap.Envelope() = oClient.ListMessages()
|
||||
For oCounterEnvelope As Integer = 0 To oEnvelopes.Length - 1
|
||||
For oCounterUnseen As Integer = 0 To oUniqueID.Length - 1
|
||||
If oEnvelopes(oCounterEnvelope).UniqueID = oUniqueID(oCounterUnseen) Then
|
||||
If IsTest = True Then
|
||||
MsgBox($"Working on unseen email: UniqueID: {oEnvelopes(oCounterEnvelope).UniqueID} - Subject:{oEnvelopes(oCounterEnvelope).Subject} - Date {oEnvelopes(oCounterEnvelope).Date.ToString}")
|
||||
End If
|
||||
Logger.Info($"Working on unseen email: UniqueID: {oEnvelopes(oCounterEnvelope).UniqueID} - Subject:{oEnvelopes(oCounterEnvelope).Subject} - Date {oEnvelopes(oCounterEnvelope).Date.ToString}")
|
||||
Logger.Debug($"Working on unseen email: UniqueID: {oEnvelopes(oCounterEnvelope).UniqueID} - Subject:{oEnvelopes(oCounterEnvelope).Subject} - Date {oEnvelopes(oCounterEnvelope).Date.ToString}")
|
||||
Dim oMessage As Mime.Message = oClient.GetMessage(oEnvelopes(oCounterEnvelope).UniqueID)
|
||||
If Not IsNothing(oMessage) Then
|
||||
oCount += 1
|
||||
MAIL_LIST.Add(oMessage)
|
||||
oClient.Store(oEnvelopes(oCounterEnvelope).UniqueID, "+FLAGS", "SEEN")
|
||||
End If
|
||||
End If
|
||||
Try
|
||||
If DeleteinTest = True Then
|
||||
Logger.Debug($"Message shall be deleted...")
|
||||
oClient.Delete(oEnvelopes(i).UniqueID)
|
||||
Logger.Debug($"Message has been marked as deleted!")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Message could not be deleted: " & ex.Message)
|
||||
End Try
|
||||
Try
|
||||
If MoveMailTo <> "" Then
|
||||
Logger.Debug($"Moving to [{MoveMailTo}] is active...")
|
||||
oClient.AddMessage(MoveMailTo, oMessage)
|
||||
Logger.Debug($"Successfully moved!")
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Message could not be moved: " & ex.Message)
|
||||
End Try
|
||||
|
||||
|
||||
Next
|
||||
Next
|
||||
'For i As Integer = 0 To oUniqueID.Length - 1
|
||||
' oFoundMessages(i) = oClient.GetMessage(oUniqueID(i))
|
||||
' 'If oFoundMessages(i).Subject.ToLower.Contains("seen") Then
|
||||
|
||||
' For i1 As Integer = 0 To oEnvelopes.Length - 1
|
||||
' If oEnvelopes(i1).UniqueID = oUniqueID(i) Then
|
||||
' Logger.Info($"Working on unseen email: UniqueID: {oEnvelopes(i).UniqueID} - Subject:{oEnvelopes(i).Subject} - Date {oEnvelopes(i).Date.ToString}")
|
||||
' Logger.Debug($"Working on unseen email: UniqueID: {oEnvelopes(i).UniqueID} - Subject:{oEnvelopes(i).Subject} - Date {oEnvelopes(i).Date.ToString}")
|
||||
' Dim oMessage As Mime.Message = oClient.GetMessage(oEnvelopes(i).UniqueID)
|
||||
' If Not IsNothing(oMessage) Then
|
||||
' oCount += 1
|
||||
' MAIL_LIST.Add(oMessage)
|
||||
' oClient.Store(oEnvelopes(i1).UniqueID, "+FLAGS", "SEEN")
|
||||
' End If
|
||||
' End If
|
||||
' Next
|
||||
' 'End If
|
||||
|
||||
'Next
|
||||
|
||||
|
||||
'Dim oEnvelopes As Independentsoft.Email.Imap.Envelope() = oClient.ListMessages()
|
||||
'Dim oCount As Integer = 0
|
||||
'For i As Integer = 0 To oEnvelopes.Length - 1
|
||||
' If IsNothing(oEnvelopes(i).Subject) Then
|
||||
' Logger.Debug("Attention...Subject is nothing!!")
|
||||
' End If
|
||||
' 'If envelopes(i).Subject.ToString.ToUpper.Contains("[PROCESSMANAGER]") Or envelopes(i).Subject.ToString.ToUpper.Contains("[ADDI]") Then
|
||||
' Logger.Info($"Working on email: UniqueID: {oEnvelopes(i).UniqueID} - Subject:{oEnvelopes(i).Subject} - Date {oEnvelopes(i).Date.ToString}")
|
||||
' Logger.Debug($"Working on email: UniqueID: {oEnvelopes(i).UniqueID} - Subject:{oEnvelopes(i).Subject} - Date {oEnvelopes(i).Date.ToString}")
|
||||
|
||||
|
||||
' Dim oMessage As Mime.Message = oClient.GetMessage(oEnvelopes(i).UniqueID)
|
||||
' If Not IsNothing(oMessage) Then
|
||||
' oCount += 1
|
||||
' MAIL_LIST.Add(oMessage)
|
||||
' End If
|
||||
' Try
|
||||
' If DeleteinTest = True Then
|
||||
' Logger.Debug($"Message shall be deleted...")
|
||||
' oClient.Delete(oEnvelopes(i).UniqueID)
|
||||
' Logger.Debug($"Message has been marked as deleted!")
|
||||
' Else
|
||||
' Logger.Debug("Message will be set to SEEN")
|
||||
' oClient.Store(oEnvelopes(i).UniqueID, "-FLAGS", "SEEN")
|
||||
' End If
|
||||
' Catch ex As Exception
|
||||
' Logger.Warn("Message could not be deleted: " & ex.Message)
|
||||
' End Try
|
||||
' Try
|
||||
' If MoveMailTo <> "" Then
|
||||
' Logger.Debug($"Moving to [{MoveMailTo}] is active...")
|
||||
' oClient.AddMessage(MoveMailTo, oMessage)
|
||||
' Logger.Debug($"Successfully moved!")
|
||||
' End If
|
||||
|
||||
' Catch ex As Exception
|
||||
' Logger.Warn("Message could not be moved: " & ex.Message)
|
||||
' End Try
|
||||
'Next
|
||||
oClient.Expunge()
|
||||
oClient.Disconnect()
|
||||
If oCount > 0 Then
|
||||
Logger.Debug($"Found [{oCount.ToString}] Messages...")
|
||||
Logger.Debug($"###############################################")
|
||||
Logger.Debug($"Found [{oCount.ToString}] Messages to work on!")
|
||||
Logger.Debug($"###############################################")
|
||||
End If
|
||||
' Logger.Debug($"{oCount.ToString} messages will be worked..")
|
||||
Logger.Debug("IMAP COLLECT Independentsoft finished!")
|
||||
@@ -174,6 +235,69 @@ Public Class clsEmailIMAP
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Public Function IMAP_Set2Seen(Server As String, Port As Integer, Username As String, Password As String, IsoftLog As String)
|
||||
Try
|
||||
Logger.Debug(String.Format("Working on IMAP_Set2Seen Independentsoft..."))
|
||||
Dim oClient As New Independentsoft.Email.Imap.ImapClient(Server, Port)
|
||||
If IsoftLog <> "" And LogConfig.Debug = True Then
|
||||
Dim iLogger As New Independentsoft.Email.Logger(IsoftLog)
|
||||
AddHandler iLogger.WriteLog, AddressOf OnWriteLog
|
||||
oClient.Logger = iLogger
|
||||
End If
|
||||
|
||||
oClient.EnableSsl = True
|
||||
oClient.ValidateRemoteCertificate = False
|
||||
oClient.Connect()
|
||||
Try
|
||||
oClient.Login(Username, Password, AuthenticationType.Login)
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Error while loginImap.now trying Ntlm-Auth: " & ex.Message)
|
||||
Try
|
||||
oClient.Login(Username, Password, AuthenticationType.Ntlm)
|
||||
Catch ex1 As Exception
|
||||
Logger.Error(ex)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Try
|
||||
Logger.Debug("Logged in...")
|
||||
oClient.SelectFolder("Inbox")
|
||||
|
||||
Dim coSearchCriteria As New SearchCriteria()
|
||||
coSearchCriteria.Unseen = True
|
||||
|
||||
Dim oUniqueID As Integer() = oClient.Search(coSearchCriteria)
|
||||
|
||||
Dim oFoundMessages As Message() = New Message(oUniqueID.Length - 1) {}
|
||||
|
||||
For i As Integer = 0 To oUniqueID.Length - 1
|
||||
oFoundMessages(i) = oClient.GetMessage(oUniqueID(i))
|
||||
If oFoundMessages(i).Subject.ToLower.Contains("seen") Then
|
||||
Logger.Debug($"Working on unseen email: [{oUniqueID(i)}] Subject:{oFoundMessages(i).Subject} - Date {oFoundMessages(i).Date}")
|
||||
Dim oEnvelopes1 As Independentsoft.Email.Imap.Envelope() = oClient.ListMessages()
|
||||
For i1 As Integer = 0 To oEnvelopes1.Length - 1
|
||||
If oEnvelopes1(i1).UniqueID = oUniqueID(i) Then
|
||||
Logger.Debug($"Setting email to Unseen!")
|
||||
oClient.Store(oEnvelopes1(i1).UniqueID, "+FLAGS", "SEEN")
|
||||
MsgBox("Set to SEEN")
|
||||
End If
|
||||
|
||||
Next
|
||||
End If
|
||||
|
||||
Next
|
||||
oClient.Expunge()
|
||||
MsgBox("Expunge done")
|
||||
oClient.Disconnect()
|
||||
|
||||
|
||||
Logger.Debug("IMAP_Set2Seen finished!")
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex, "Unexpected Error in IMAP_Set2Seen Independentsoft:")
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Uses a private API from MailWriter to write a MailMessage to disk.
|
||||
|
||||
Reference in New Issue
Block a user