MS Release CleanFileName
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user