MS Release CleanFileName

This commit is contained in:
2021-12-01 12:12:04 +01:00
parent ae5bc40f5f
commit 0f94cab4f1
88 changed files with 329 additions and 9548 deletions

View File

@@ -7,7 +7,7 @@ Imports Limilabs.Mail.MIME
Imports Limilabs.Mail.Headers
Public Class clsWorker
Private Shared Logger As Logger
Private MyLogger As LogConfig
Private MyLogConfig As LogConfig
'Private _email As clsEmail
Private _emailIMAP As clsEmailIMAP
Private _Database As clsDatabase
@@ -17,12 +17,11 @@ Public Class clsWorker
Private _workmail As clsWorkEmail
Private _wrapper As clsEncryption
Private _POLL_PROFILEID As Integer = 0
Private _limilab As DigitalData.Modules.Messaging.Limilab
Dim cs As String
Sub New(LogConf As LogConfig, ConStr As String, POLL_PROFILEID As Integer, FB_DATASOURCE As String, FB_DATABASE As String, FB_USER As String, FB_PW As String, USE_WM As Boolean, EmailAccountID As Integer, Optional plocaleml As String = "")
Sub New(LogConf As LogConfig, ConStr As String, POLL_PROFILEID As Integer, FB_DATASOURCE As String, FB_DATABASE As String, FB_USER As String, FB_PW As String, USE_WM As Boolean, EmailAccountID As Integer, EmlProfPraefix As String, Optional plocaleml As String = "")
MyLogConfig = LogConf
Logger = LogConf.GetLogger
_limilab = New Limilab(LogConf)
' _email = New clsEmail(LogConf)
_emailIMAP = New clsEmailIMAP(LogConf, ConStr)
_Database = New clsDatabase(LogConf, ConStr)
cs = ConStr
@@ -32,20 +31,12 @@ Public Class clsWorker
_windream_index = New clsWindream_Index(LogConf)
End If
_workmail = New clsWorkEmail(LogConf, ConStr, FB_DATASOURCE, FB_DATABASE, FB_USER, FB_PW, USE_WM, EmailAccountID)
_workmail = New clsWorkEmail(LogConf, ConStr, FB_DATASOURCE, FB_DATABASE, FB_USER, FB_PW, USE_WM, EmailAccountID, EmlProfPraefix)
_wrapper = New clsEncryption("!35452didalog=", LogConf)
_POLL_PROFILEID = POLL_PROFILEID
ClassCurrent.CURRENT_DEBUG_LOCAL_EMAIL = plocaleml
End Sub
Public Sub Debug_Local_Email()
Try
Catch ex As Exception
End Try
End Sub
Public Sub Start_WorkingProfiles(Optional LocalEmail As Boolean = False)
Try
TEMP_FILES.Clear()
@@ -65,10 +56,10 @@ Public Class clsWorker
osql &= " WHERE ACTIVE = 1 order by SEQUENCE"
Else
osql &= " WHERE GUID = " & _POLL_PROFILEID
End If
End If
Dim DT_TBDD_EMAIL As DataTable = _Database.Return_Datatable("SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1")
Dim DT_PROFILES = _Database.Return_Datatable(osql)
If Not IsNothing(DT_PROFILES) Then
If Not IsNothing(DT_PROFILES) Then
If DT_PROFILES.Rows.Count > 0 Then
Logger.Debug("count of active profiles: " & DT_PROFILES.Rows.Count.ToString)
For Each oDR_Profile As DataRow In DT_PROFILES.Rows
@@ -117,6 +108,7 @@ Public Class clsWorker
MAIL_PORT = row("PORT_IN")
MAIL_INBOX_NAME = "Inbox"
MAIL_ARCHIVE_FOLDER = row("ARCHIVE_FOLDER")
MAIL_AUTHTYPE = row("AUTH_TYPE")
Logger.Debug(String.Format("{0}-{1}", MAIL_FROM, MAIL_SERVER))
Dim PWPlain = _wrapper.DecryptData(MAIL_USER_PW)
@@ -131,16 +123,13 @@ Public Class clsWorker
End If
Next
CURRENT_WORKMAIL_LIST.Clear()
CURRENT_WORKMAIL_UID_LIST.Clear()
If MAIL_SERVER <> "" Then
Dim pollresult As Boolean = False
If LocalEmail = True Then
pollresult = True
Dim oEmail As IMail = New MailBuilder().CreateFromEmlFile(CURRENT_DEBUG_LOCAL_EMAIL)
Dim oMessage As New Message(CURRENT_DEBUG_LOCAL_EMAIL)
CURRENT_WORKMAIL_LIST.Add(oMessage)
CURRENT_WORKMAIL_LIST.Add(oEmail)
Else
Select Case CURRENT_POLL_TYPE
Case "POP"
@@ -148,36 +137,51 @@ Public Class clsWorker
Case "IMAP"
'pollresult = _emailIMAP.IMAP_COLLECT()
'pollresult = _emailIMAP.FetchIMAPMessagesIsoft(MAIL_SERVER, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_INBOX_NAME, MAIL_ARCHIVE_FOLDER)
pollresult = _emailIMAP.FetchIMAPMessagesS22(MAIL_SERVER, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_INBOX_NAME)
pollresult = _emailIMAP.FetchIMAPMessagesLimilab(MAIL_SERVER, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_AUTHTYPE)
End Select
End If
'If pollresult = False Then
' Logger.Info(String.Format("Error while polling emails...Trying S22...."))
' pollresult = _emailIMAP.FetchIMAPMessages(MAIL_SERVER, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_INBOX_NAME)
' If pollresult = False Then
' Logger.Warn(String.Format("FetchIMAPMessagesS22 - also returned error!"))
' End If
'End If
If CURRENT_WORKMAIL_LIST.Count() > 0 Then
Logger.Info(String.Format("Worked/Pulled: [{0}] E-Mails", CURRENT_WORKMAIL_LIST.Count()))
Try
'For Each pulled_msg As Message In CURRENT_WORKMAIL_LIST
' _workmail.WorkEmailMessage(pulled_msg)
' CURRENT_MAIL_MESSAGE = Nothing
'Next
For Each pulled_msg As IMail In CURRENT_WORKMAIL_LIST
_workmail.WorkEmailMessage(pulled_msg)
CURRENT_MAIL_MESSAGE = Nothing
Next
Catch ex As Exception
Logger.Error(ex)
Logger.Warn($"Error converting CURRENT_WORKMAIL_LIST to IsoftMesage: {ex.Message} ")
End Try
If CURRENT_WORKMAIL_UID_LIST.Count() > 0 Or LocalEmail = True Then
If LocalEmail Then
Logger.Info("Working with local Mail")
Dim oEmail As IMail = New MailBuilder().CreateFromEmlFile(CURRENT_DEBUG_LOCAL_EMAIL)
_workmail.WorkEmailMessage(oEmail, 123456789)
CURRENT_MAIL_MESSAGE = Nothing
Else
Try
Logger.Info(String.Format("Pulled: [{0}] E-Mails", CURRENT_WORKMAIL_UID_LIST.Count()))
For Each oUID In CURRENT_WORKMAIL_UID_LIST
Dim oEml = CURRENT_ImapObject.GetMessageByUID(oUID)
Dim oEmail As IMail = New MailBuilder().CreateFromEml(oEml)
If Not IsNothing(oEmail) Then
If _workmail.WorkEmailMessage(oEmail, oUID) = True Then
If ClassCurrent.CURRENT_DEBUG_LOCAL_EMAIL = "" Then
EMAIL_DELETE()
End If
End If
Else
Logger.Info("### oEmail was nothing ###")
End If
CURRENT_MAIL_MESSAGE = Nothing
Next
If CURRENT_POLL_TYPE = "IMAP" And CURRENT_WORKMAIL_UID_LIST.Count > 0 Then
If Not IsNothing(CURRENT_ImapObject) Then
CURRENT_ImapObject.Close()
End If
End If
Catch ex As Exception
Logger.Error(ex)
Logger.Warn($"Unexpected Error working CURRENT_WORKMAIL_UID_LIST: {ex.Message} ")
End Try
End If
Else
Logger.Debug(String.Format("No emails for profile!"))
End If
Else
Logger.Warn("For the Email-Profile ID " & CURRENT_EMAIL_GUID & " no record could be found!")
End If
@@ -201,23 +205,6 @@ Public Class clsWorker
End Try
End If
Next
'Try
' Dim oDiTempPath As New IO.DirectoryInfo(System.IO.Path.GetTempPath)
' Dim oaryFi As IO.FileInfo() = oDiTempPath.GetFiles()
' Dim ofi As IO.FileInfo
' For Each fi In oaryFi
' Try
' fi.Delete()
' Catch ex As Exception
' Logger.Warn($"TempFileDelete2 - Could not delete the tempfile: {ex.Message}")
' End Try
' Next
'Catch ex As Exception
' Logger.Warn($"TempFileDelete3 - Could not delete the tempfile: {ex.Message}")
'End Try
Catch ex As Exception
Logger.Warn($"TempFileDelete(X) - Could not delete the tempfile from TEMP_FILES: {ex.Message}")
@@ -225,13 +212,27 @@ Public Class clsWorker
Else
Logger.Info("No active profiles")
End If
End If
End If
_Database.Execute_non_Query("UPDATE TBEMLP_CONFIG SET LAST_TICK = GETDATE() WHERE GUID = 1")
_Database.Execute_non_Query("UPDATE TBEMLP_CONFIG SET LAST_TICK = GETDATE() WHERE GUID = 1")
End If
Catch ex As Exception
Logger.Error(ex)
End Try
End Sub
Private Function EMAIL_DELETE()
If DeleteMail = True And MessageError = False Then
If Not IsNothing(CURRENT_ImapObject) Then
CURRENT_ImapObject.DeleteMessageByUID(CURRENT_MAIL_UID)
Else
Logger.Warn("EMAIL_DELETE - CURRENT_ImapObject is nothing")
End If
Else
If MessageError = True Then
Logger.Warn($"Did not delete Message with UID [{CURRENT_MAIL_UID}] as there was an MessageError!")
End If
End If
End Function
End Class