diff --git a/App/EmailProfiler.Common/ClassCurrent.vb b/App/EmailProfiler.Common/ClassCurrent.vb
index 30ec714..0b142a4 100644
--- a/App/EmailProfiler.Common/ClassCurrent.vb
+++ b/App/EmailProfiler.Common/ClassCurrent.vb
@@ -1,9 +1,5 @@
-Imports WINDREAMLib
-Imports Limilabs.Mail
-Imports Limilabs.Mail.MIME
-Imports Limilabs.Mail.Headers
-Imports MailBox = Limilabs.Mail.Headers.MailBox
-Imports Limilabs.Client.IMAP
+Imports Limilabs.Client.IMAP
+Imports WINDREAMLib
Public Class ClassCurrent
Public Shared Property WM_DRIVE As String
diff --git a/App/EmailProfiler.Common/Data/EmailAttachment.vb b/App/EmailProfiler.Common/Data/EmailAttachment.vb
index 32092e8..d3bf368 100644
--- a/App/EmailProfiler.Common/Data/EmailAttachment.vb
+++ b/App/EmailProfiler.Common/Data/EmailAttachment.vb
@@ -12,6 +12,8 @@ Public Class EmailAttachment
Public ErrorCodeValue As ErrorCode = ErrorCode.Unknown
Public ErrorCodeComment As String = ""
+ Public AttachmentPosition As Integer = 0
+
Public EmbeddedFiles As List(Of EmailAttachment) = New List(Of EmailAttachment)
Public ReadOnly Property Extension As String
diff --git a/App/EmailProfiler.Common/MailContainer.vb b/App/EmailProfiler.Common/Data/MailContainer.vb
similarity index 99%
rename from App/EmailProfiler.Common/MailContainer.vb
rename to App/EmailProfiler.Common/Data/MailContainer.vb
index 78b9b7a..de357ce 100644
--- a/App/EmailProfiler.Common/MailContainer.vb
+++ b/App/EmailProfiler.Common/Data/MailContainer.vb
@@ -8,27 +8,32 @@ Public Class MailContainer
''' The Mail object created by Limilabs
'''
Public ReadOnly Property Mail As IMail
+
'''
''' The IMAP Id coming from the IMAP folder. Used to reference the mail.
'''
Public ReadOnly Property ImapId As Integer
+
'''
''' The original MessageID from the eml file
'''
Public ReadOnly Property MessageIdOriginal As String
+
'''
''' The new MessageID, which is generated by hashing the original MessageID
'''
Public ReadOnly Property MessageId As String
+
'''
''' The subject, truncated to SUBJECT_MAX_LENGTH characters
'''
Public ReadOnly Property Subject As String
+
Public ReadOnly Property SubjectOriginal As String
Public ReadOnly Property SenderDomain As String
- Public ReadOnly Property SenderAddress As String
+ Public ReadOnly Property SenderAddress As String
Public Sub New(pMail As IMail, pImapId As Integer)
Mail = pMail
diff --git a/App/EmailProfiler.Common/EmailProfiler.Common.vbproj b/App/EmailProfiler.Common/EmailProfiler.Common.vbproj
index 9fca3e1..e7ebb3a 100644
--- a/App/EmailProfiler.Common/EmailProfiler.Common.vbproj
+++ b/App/EmailProfiler.Common/EmailProfiler.Common.vbproj
@@ -122,14 +122,14 @@
-
+
-
+
True
diff --git a/App/EmailProfiler.Common/EmailStrings.vb b/App/EmailProfiler.Common/Enum/EmailStrings.vb
similarity index 100%
rename from App/EmailProfiler.Common/EmailStrings.vb
rename to App/EmailProfiler.Common/Enum/EmailStrings.vb
diff --git a/App/EmailProfiler.Common/clsWorkEmail.vb b/App/EmailProfiler.Common/clsWorkEmail.vb
index 62e1884..f5d264b 100644
--- a/App/EmailProfiler.Common/clsWorkEmail.vb
+++ b/App/EmailProfiler.Common/clsWorkEmail.vb
@@ -18,7 +18,7 @@ Public Class clsWorkEmail
Private Const SUBJECT_MAX_LENGTH = 25
Private Const MESSAGE_ID_MAX_LENGTH = 100
- Private CurrentMail As MailContainer = Nothing
+ Private _CurrentMail As MailContainer = Nothing
Private CurrentTempMailPath As String
@@ -48,24 +48,14 @@ Public Class clsWorkEmail
Private ReadOnly _LicenseManager As New LicenseManager
Private ReadOnly _ValidExtensions As List(Of String)
+ Private ReadOnly _ValidFirstExtensions As List(Of String)
Private ReadOnly _GraphicExtensions As List(Of String)
+ Private DoubleBytes As Double
Private _worked_email As Boolean = False
- 'Sub New(LogConf As LogConfig,
- ' ConStr As String,
- ' WmConStr As String,
- ' pUseWindream As Boolean,
- ' EmailAccountID As Integer,
- ' EmlProfPraefix As String,
- ' pRejectionTemplateId As Integer,
- ' pInfoTemplateId As Integer,
- ' pConfigData As ConfigData)
- Sub New(LogConf As LogConfig,
- ConStr As String,
- WmConStr As String,
- pConfigData As ConfigData)
+ Sub New(LogConf As LogConfig, ConStr As String, WmConStr As String, pConfigData As ConfigData)
Try
_Logger = LogConf.GetLogger
_LogConfig = LogConf
@@ -78,6 +68,8 @@ Public Class clsWorkEmail
_Logger.Debug($"_RejectionTemplateId: {_RejectionTemplateId}")
_ValidExtensions = New List(Of String) From {"pdf", "xls", "xlsx", "doc", "docx", "ppt", "pptx"}
+ _ValidFirstExtensions = New List(Of String) From {"xml"}
+ _ValidFirstExtensions.AddRange(_ValidExtensions)
_GraphicExtensions = New List(Of String) From {"jpg", "bmp", "jpeg", "gif", "png", "xml"}
If _UseWindream Then
@@ -99,6 +91,7 @@ Public Class clsWorkEmail
_Logger.Error(ex)
End Try
End Sub
+
Public Function WorkEmailMessage(pMailMessage As IMail, poUID As Long, pValidationSQL As String) As Boolean
Try
For Each m As MailBox In pMailMessage.From
@@ -106,7 +99,7 @@ Public Class clsWorkEmail
Next
'TODO: Move all of these CURRENT_MAIL vars into a business object of type mail container
- CurrentMail = New MailContainer(pMailMessage, poUID)
+ _CurrentMail = New MailContainer(pMailMessage, poUID)
_Logger.Debug($"Working on email from: {CURRENT_MAIL_FROM}...Subject: {pMailMessage.Subject}")
CURRENT_MAIL_BODY_ALL = ""
@@ -149,7 +142,7 @@ Public Class clsWorkEmail
_Logger.Info($"Working on email from : {CURRENT_MAIL_FROM}...")
- Dim oSql = $"Select COALESCE(MAX(GUID),0) FROM TBEMLP_HISTORY WHERE EMAIL_MSGID = '{CurrentMail.MessageId}'"
+ Dim oSql = $"Select COALESCE(MAX(GUID),0) FROM TBEMLP_HISTORY WHERE EMAIL_MSGID = '{_CurrentMail.MessageId}'"
Dim oHistoryID = _DB_MSSQL.GetScalarValue(oSql)
If oHistoryID > 0 And IS_LOCAL_TEST = False Then
@@ -157,13 +150,13 @@ Public Class clsWorkEmail
Return True
End If
- Dim oTempMailExists As Boolean = Save2TempDirectory(CurrentMail)
+ Dim oTempMailExists As Boolean = Save2TempDirectory(_CurrentMail)
'Checking wether Mail can be opened
Dim oTempMailAccessible As Boolean = False
If oTempMailExists = False Then
- _Logger.Warn("Could not process email [{0}], file does not exist!", CurrentMail.MessageId)
+ _Logger.Warn("Could not process email [{0}], file does not exist!", _CurrentMail.MessageId)
Return False
End If
@@ -176,7 +169,7 @@ Public Class clsWorkEmail
End Try
If oTempMailAccessible = False Then
- _Logger.Warn("Could not process email [{0}], file is not accessible!", CurrentMail.MessageId)
+ _Logger.Warn("Could not process email [{0}], file is not accessible!", _CurrentMail.MessageId)
Return False
End If
@@ -185,21 +178,21 @@ Public Class clsWorkEmail
If pValidationSQL <> "" Then
Dim oReplaceValues = New Dictionary(Of String, String) From {
- {"EMAIL", CurrentMail.SenderAddress},
- {"DOMAIN", CurrentMail.SenderDomain}
+ {"EMAIL", _CurrentMail.SenderAddress},
+ {"DOMAIN", _CurrentMail.SenderDomain}
}
Dim pValidationSQLWithPlaceholders = _Patterns.ReplaceCustomValues(pValidationSQL, oReplaceValues)
Dim oResult As String = ObjectEx.NotNull(_DB_MSSQL.GetScalarValue(pValidationSQLWithPlaceholders), "")
If oResult <> "" Then
- Dim oRejectionCodeString = GetRejectionCodeString(CurrentMail.MessageId, ErrorCode.SenderValidationFailed)
+ Dim oRejectionCodeString = GetRejectionCodeString(_CurrentMail.MessageId, ErrorCode.SenderValidationFailed)
'insert history und exit
- InsertHistoryEntryWithStatus(CurrentMail, "REJECTED", oRejectionCodeString)
- AddTrackingStatusMSSQL(CurrentMail.MessageId, oRejectionCodeString, "Email-Adress validation failed", "", "EMailProfiler")
+ InsertHistoryEntryWithStatus(_CurrentMail, "REJECTED", oRejectionCodeString)
+ AddTrackingStatusMSSQL(_CurrentMail.MessageId, oRejectionCodeString, "Email-Adress validation failed", "", "EMailProfiler")
- AddToEmailQueueMSSQL(CurrentMail.MessageId, oResult, "Email validation failed", _EmailAccountID,
+ AddToEmailQueueMSSQL(_CurrentMail.MessageId, oResult, "Email validation failed", _EmailAccountID,
_RejectionTemplateId, ErrorCode.SenderValidationFailed, "", "")
' Return early from processing eml
@@ -209,13 +202,13 @@ Public Class clsWorkEmail
End If
If CURRENT_MAIL_SUBJECT.Contains("[PROCESSMANAGER]") Then
- Return PROCESS_MANAGER_IN(CurrentMail)
+ Return ProcessManager_IN(_CurrentMail)
Else
_Logger.Debug("CommonEmail-Process-Sniffer")
- Dim oCommonEmailResult = COMMON_EMAIL_IN(CurrentMail)
+ Dim oCommonEmailResult = CommonEmail_IN(_CurrentMail)
If oCommonEmailResult = False Then
Return False
@@ -224,19 +217,18 @@ Public Class clsWorkEmail
If CURRENT_ATTMT_COUNT = 0 Then
_Logger.Info("### Mail contained no Attachments!! ###")
- Dim oRejectionCodeString = GetRejectionCodeString(CurrentMail.MessageId, ErrorCode.NoAttachments)
- InsertHistoryEntryWithStatus(CurrentMail, "REJECTED", oRejectionCodeString)
- AddTrackingStatusMSSQL(CurrentMail.MessageId, oRejectionCodeString, "No Attachments", "", "EMailProfiler")
+ Dim oRejectionCodeString = GetRejectionCodeString(_CurrentMail.MessageId, ErrorCode.NoAttachments)
+ InsertHistoryEntryWithStatus(_CurrentMail, "REJECTED", oRejectionCodeString)
+ AddTrackingStatusMSSQL(_CurrentMail.MessageId, oRejectionCodeString, "No Attachments", "", "EMailProfiler")
Dim oBody = EmailStrings.EMAIL_NO_FERDS
- If AddToEmailQueueMSSQL(CurrentMail.MessageId, oBody, "No Attachments", _EmailAccountID,
+ If AddToEmailQueueMSSQL(_CurrentMail.MessageId, oBody, "No Attachments", _EmailAccountID,
_RejectionTemplateId, ErrorCode.NoAttachments, "", "") = True Then
CURRENT_ImapObject.DeleteMessageByUID(poUID)
End If
Else
-
' Jetzt werden die ggf gefundenen Attachment-Fehler überprüft und verarbeitet
Dim oNormalAttachmentsNotValid As Boolean = False
Dim oEmbeddedAttachmentsNotValid As Boolean = False
@@ -246,9 +238,9 @@ Public Class clsWorkEmail
Any(Function(emb) emb.EmbeddedFiles.Any(Function(ext) ext.IsAttachmentValid = False))
If oEmbeddedAttachmentsNotValid = True Then
- Dim oRejectionCodeString = GetRejectionCodeString(CurrentMail.MessageId, ErrorCode.EmbeddedFileAttachmentCorrupt)
- InsertHistoryEntryWithStatus(CurrentMail, "REJECTED", oRejectionCodeString)
- AddTrackingStatusMSSQL(CurrentMail.MessageId, oRejectionCodeString, "Embedded File corrupt", "", "EMailProfiler")
+ Dim oRejectionCodeString = GetRejectionCodeString(_CurrentMail.MessageId, ErrorCode.EmbeddedFileAttachmentCorrupt)
+ InsertHistoryEntryWithStatus(_CurrentMail, "REJECTED", oRejectionCodeString)
+ AddTrackingStatusMSSQL(_CurrentMail.MessageId, oRejectionCodeString, "Embedded File corrupt", "", "EMailProfiler")
SendRejectionMailToSenderIfEmbeddedAttachmentsAreNotValid()
@@ -257,7 +249,7 @@ Public Class clsWorkEmail
Else
If IS_LOCAL_TEST = False Then
- InsertHistoryEntry(CurrentMail)
+ InsertHistoryEntry(_CurrentMail)
End If
oNormalAttachmentsNotValid = EmailAttachments.Any(Function(ext) ext.IsAttachmentValid = False)
@@ -291,7 +283,7 @@ Public Class clsWorkEmail
If oHtmlFilenameList.IsNotNullOrEmpty() Then
- AddToEmailQueueMSSQL(CurrentMail.MessageId, "", "Attachment invalid", _EmailAccountID, _InfoTemplateId, ErrorCode.NormalFileAttachmentCorrupt, oHtmlFilenameList, "")
+ AddToEmailQueueMSSQL(_CurrentMail.MessageId, "", "Attachment invalid", _EmailAccountID, _InfoTemplateId, ErrorCode.NormalFileAttachmentCorrupt, oHtmlFilenameList, "")
End If
End Sub
@@ -305,7 +297,7 @@ Public Class clsWorkEmail
Dim oHtmlFilenameList As String = GetHtmlFilenameList()
If oHtmlFilenameList.IsNotNullOrEmpty() Then
- AddToEmailQueueMSSQL(CurrentMail.MessageId, "", "Attachment invalid", _EmailAccountID, _RejectionTemplateId, ErrorCode.EmbeddedFileAttachmentCorrupt, oHtmlFilenameList, "")
+ AddToEmailQueueMSSQL(_CurrentMail.MessageId, "", "Attachment invalid", _EmailAccountID, _RejectionTemplateId, ErrorCode.EmbeddedFileAttachmentCorrupt, oHtmlFilenameList, "")
End If
End Sub
@@ -323,7 +315,7 @@ Public Class clsWorkEmail
If attachmentItem.IsAttachmentValid = False Or oEmbeddedAttachmentsInvalid = True Then
- AddTrackingStatusMSSQL(CurrentMail.MessageId, attachmentItem.OrgFileName, "FILE CONSISTENCY NOT OK", attachmentItem.ErrorCodeComment, "EMail Profiler")
+ AddTrackingStatusMSSQL(_CurrentMail.MessageId, attachmentItem.OrgFileName, "FILE CONSISTENCY NOT OK", attachmentItem.ErrorCodeComment, "EMail Profiler")
filenameHtmlString += "" + attachmentItem.OrgFileName + ""
End If
@@ -335,7 +327,7 @@ Public Class clsWorkEmail
For Each embeddedItem In attachmentItem.EmbeddedFiles
If embeddedItem.IsAttachmentValid = False Then
- AddTrackingStatusMSSQL(CurrentMail.MessageId, embeddedItem.OrgFileName, "EMBEDDED FILE CONSISTENCY NOT OK", embeddedItem.ErrorCodeComment, "EMail Profiler")
+ AddTrackingStatusMSSQL(_CurrentMail.MessageId, embeddedItem.OrgFileName, "EMBEDDED FILE CONSISTENCY NOT OK", embeddedItem.ErrorCodeComment, "EMail Profiler")
embeddedFilenamesHtmlString += "" + embeddedItem.OrgFileName + ""
End If
@@ -542,7 +534,8 @@ Public Class clsWorkEmail
Return True
End Function
- Private Function PROCESS_MANAGER_IN(pCurrentMail As MailContainer) As Boolean
+
+ Private Function ProcessManager_IN(pCurrentMail As MailContainer) As Boolean
Try
_Logger.Info(String.Format("PM-related message found....[{0}]", pCurrentMail.Mail.Subject))
@@ -566,8 +559,8 @@ Public Class clsWorkEmail
WM_IDX_BODY_SUBSTR_LENGTH = row("WM_IDX_BODY_SUBSTR_LENGTH")
DeleteMail = row("DELETE_MAIL")
- If COPY2HDD(pCurrentMail, row("COPY_2_HDD"), row("PATH_ORIGINAL"), row("PATH_EMAIL_ERRORS"), False) = True Then
- EXTRACT_BODY(pCurrentMail)
+ If Copy2HDD(pCurrentMail, row("COPY_2_HDD"), row("PATH_ORIGINAL"), row("PATH_EMAIL_ERRORS"), False) = True Then
+ ExtractBody(pCurrentMail)
End If
@@ -583,9 +576,9 @@ Public Class clsWorkEmail
_Logger.Info(String.Format("Keyword contained a : at end...removing it..."))
CURRENT_MAIL_BODY_ANSWER1 = CURRENT_MAIL_BODY_ANSWER1.Replace(":", "")
End If
- If GET_WMDOC_INFO() = True Then
+ If GetWMDocInfo() = True Then
If DT_STEPS.Rows.Count > 0 Then
- WORK_POLL_STEPS()
+ WorkPollSteps()
Else
_Logger.Info("No steps configured for this Profile ....")
End If
@@ -601,7 +594,7 @@ Public Class clsWorkEmail
Return False
End Try
End Function
- Dim DoubleBytes As Double
+
Default Public Property FormatBytes(ByVal BytesCaller As ULong) As String
Get
Try
@@ -632,7 +625,8 @@ Public Class clsWorkEmail
End Set
End Property
- Function COMMON_EMAIL_IN(pCurrentMail As MailContainer) As Boolean
+
+ Function CommonEmail_IN(pCurrentMail As MailContainer) As Boolean
Try
_Logger.Info(String.Format("COMMON_EMAIL_IN...Subject [{0}]", pCurrentMail.Mail.Subject))
@@ -697,7 +691,7 @@ Public Class clsWorkEmail
_Logger.Warn($"Unexpected Error in Checking RemainingTotalFreeSpace for Storage [{oExtractMainPath}]: {ex.Message}")
End Try
- If COPY2HDD(pCurrentMail, oRow("COPY_2_HDD"), oRow("PATH_ORIGINAL"), oRow("PATH_EMAIL_ERRORS"), True) = True Then
+ If Copy2HDD(pCurrentMail, oRow("COPY_2_HDD"), oRow("PATH_ORIGINAL"), oRow("PATH_EMAIL_ERRORS"), True) = True Then
If ExtractAttachments(pCurrentMail, oExtractMainPath) = True Then
Return True
@@ -781,7 +775,8 @@ Public Class clsWorkEmail
End Try
End Function
- Private Function COPY2HDD(pCurrentMail As MailContainer, pShouldCopyToDisk As Boolean, pDestination As String, pPathErrors As String, pUseMessageIdAsFilename As Boolean) As Boolean
+
+ Private Function Copy2HDD(pCurrentMail As MailContainer, pShouldCopyToDisk As Boolean, pDestination As String, pPathErrors As String, pUseMessageIdAsFilename As Boolean) As Boolean
Try
If pShouldCopyToDisk = True Then
_Logger.Debug("COPY_2_HDD is ACTIVE!")
@@ -825,7 +820,8 @@ Public Class clsWorkEmail
Return False
End Try
End Function
- Private Function EXTRACT_BODY(pCurrentMail As MailContainer)
+
+ Private Function ExtractBody(pCurrentMail As MailContainer)
Dim oTable As DataTable = _DB_MSSQL.GetDatatable("SELECT * FROM TBDD_FUNCTION_REGEX WHERE UPPER(FUNCTION_NAME) IN (UPPER('EMAIL_PROFILER - RemoveHTMLText'),UPPER('EMAIL_PROFILER - RemoveHTMLText1'))")
Dim oBodyText As String = ""
@@ -944,14 +940,18 @@ Public Class clsWorkEmail
Return True
End If
- Dim oAttachmentCount As Integer = 0
+ Dim oAttachmentCount As Integer = 0 ' Anzahl gültige Anhänge
+ Dim AttachmentPosition As Integer = 0 ' Position des Anhangs in der EMail
For Each oAttachment As MimeData In pCurrentMail.Mail.Attachments
_Logger.Info("Working on Attachment [{0}]", oAttachment.SafeFileName)
+ AttachmentPosition += 1
+
Dim oEmailAttachment As EmailAttachment = New EmailAttachment() With
{
- .OrgFileName = oAttachment.SafeFileName
+ .OrgFileName = oAttachment.SafeFileName,
+ .AttachmentPosition = AttachmentPosition
}
EmailAttachments.Add(oEmailAttachment)
@@ -1137,9 +1137,15 @@ Public Class clsWorkEmail
_Logger.Debug("Validate extension of [{0}]", pAttachmentData.OrgFileName)
Dim lowerFilename = pAttachmentData.OrgFileName.ToLower
- Dim oIsValidExtension = _ValidExtensions.Any(Function(ext) lowerFilename.EndsWith(ext))
+ Dim oIsValidExtension As Boolean = False
Dim oIsGraphicExtension = _GraphicExtensions.Any(Function(ext) lowerFilename.EndsWith(ext))
+ If pAttachmentData.AttachmentPosition = 1 Then
+ oIsValidExtension = _ValidFirstExtensions.Any(Function(ext) lowerFilename.EndsWith(ext))
+ Else
+ oIsValidExtension = _ValidExtensions.Any(Function(ext) lowerFilename.EndsWith(ext))
+ End If
+
If oIsValidExtension = False Then
If oIsGraphicExtension = False Then
_Logger.Warn("File has no valid extension, and it has no graphic extension. In this case we have to inform the sender!")
@@ -1153,187 +1159,6 @@ Public Class clsWorkEmail
Return True
End Function
- ' MP - 15.11.2024 - Logik obsolet
- 'Private Function EXTRACT_ATTACHMENTS(pCurrentMail As MailContainer, pExtractPath As String, pErrorPath As String)
- ' _Logger.Debug("In EXTRACT_ATTACHMENTS...")
-
- ' _Logger.Debug(String.Format("PATH_TEMP[{0}]", pExtractPath))
- ' Dim oAttachmentCount As Integer
- ' oAttachmentCount = 0
- ' TEMP_WORK_FILES.Clear()
-
- ' Try
- ' If CurrentTempMailPath <> Nothing Then
- ' If File.Exists(CurrentTempMailPath) Then
- ' Dim oATTFilename = ""
- ' For Each oAttachment As MimeData In pCurrentMail.Mail.Attachments
- ' oATTFilename = oAttachment.SafeFileName.ToString.ToLower
-
- ' Dim oValidExtensions = New List(Of String) From {"pdf", "xls", "xlsx", "doc", "docx", "ppt", "pptx"}
- ' Dim oGraphicExtensions = New List(Of String) From {"jpg", "bmp", "jpeg", "gif", "png", "xml"}
- ' Dim oValidExt = oValidExtensions.Any(Function(ext) oATTFilename.EndsWith(ext))
-
- ' If oValidExt = False Then
- ' _Logger.Info("Invalid FileExtension [{0}]", oATTFilename)
- ' Dim GraphicExt = oGraphicExtensions.Any(Function(ext) oATTFilename.EndsWith(ext))
- ' If GraphicExt = False Then
- ' Dim oInfo = $"Consistency or extension of attached file {oATTFilename} is not ok."
- ' AddTrackingStatusMSSQL(CurrentMail.MessageId, oInfo, "PDF CONSISTENCY NOT OK", "Info GUI", "EML_PROF_EXTR_ATT1")
- ' AddToEmailQueueMSSQL(CurrentMail.MessageId, oInfo, "PDF CONSISTENCY NOT OK", _EmailAccountID,
- ' _InfoTemplateId, ErrorCode.NormalFileAttachmentCorrupt, oATTFilename, "")
-
- ' End If
- ' Continue For
-
- ' End If
-
- ' Dim oAttachmentFilePath = ""
- ' _Logger.Info("Working on Attachment [{0}]", oAttachment.SafeFileName)
- ' Try
-
- ' Dim oFileInfo = New FileInfo(oAttachment.SafeFileName)
- ' Dim oFilenameWithoutExtension = Path.GetFileNameWithoutExtension(oAttachment.SafeFileName)
- ' Dim oFilename = StringEx.ConvertTextToSlug(oFilenameWithoutExtension) & oFileInfo.Extension
-
- ' 'Dim oAttachmentFileName = $"{CURRENT_MAIL_MESSAGE_ID}~{pCurrentMail.SenderDomain}~{oFilename}"
- ' Dim oAttachmentFileName = $"{pCurrentMail.MessageId}~Attm{oAttachmentCount}{oFileInfo.Extension}"
-
- ' _Logger.Debug("Final Filename for Attachment: [{0}]", oAttachmentFileName)
-
- ' Dim oExtractTempPath = Path.Combine(pExtractPath, "Temp")
- ' If Directory.Exists(oExtractTempPath) = False Then
- ' Directory.CreateDirectory(oExtractTempPath)
- ' End If
-
- ' oAttachmentFilePath = Path.Combine(oExtractTempPath, oAttachmentFileName)
- ' _Logger.Debug("Final Path for Attachment: [{0}]", oAttachmentFilePath)
-
- ' If File.Exists(oAttachmentFilePath) Then
- ' _Logger.Warn("File [{0}] already exists!", oAttachmentFilePath)
- ' File.Delete(oAttachmentFilePath)
- ' End If
-
- ' _Logger.Debug(String.Format("Trying to save attachment [{0}]", oAttachmentFilePath))
- ' Try
- ' oAttachment.Save(oAttachmentFilePath)
- ' 'oAttachment.Save(oAttachmentFileString)
- ' Dim oFileInfo1 As New FileInfo(oAttachmentFilePath)
- ' 'ToDo Konsistenz prüfen
- ' If oFileInfo.Extension.ToLower = ".pdf" Then
- ' Dim oPDFConsistent As Boolean = True
- ' Dim oLicenseManager As New LicenseManager
- ' oLicenseManager.RegisterKEY(GDPictureLicense)
-
- ' Dim oGdPicturePDF As New GdPicturePDF()
- ' ' Lic
- ' Dim oStatus As GdPictureStatus = oGdPicturePDF.LoadFromFile(oAttachmentFilePath, True)
- ' If oStatus <> GdPictureStatus.OK Then
- ' oPDFConsistent = False
- ' Dim oResult = $"PDF-Consistency of attached file {oATTFilename} is not ok. ({oStatus.ToString})"
- ' AddTrackingStatusMSSQL(CurrentMail.MessageId, oResult, "PDF CONSISTENCY NOT OK", "Info GUI", "EML_PROF_EXTR_ATT2")
- ' AddToEmailQueueMSSQL(CurrentMail.MessageId, oResult, "PDF CONSISTENCY NOT OK", _EmailAccountID,
- ' _InfoTemplateId, ErrorCode.EmbeddedFileAttachmentCorrupt, oATTFilename, "")
- ' File.Delete(oAttachmentFilePath)
- ' Continue For
- ' Else
- ' Dim embeddedFileCount As Integer = oGdPicturePDF.GetEmbeddedFileCount()
- ' If embeddedFileCount > 0 Then
- ' For i As Integer = 0 To embeddedFileCount - 1
- ' Dim oEmbAttName As String = oGdPicturePDF.GetEmbeddedFileName(i)
- ' Dim fileDetail As IO.FileInfo
- ' fileDetail = My.Computer.FileSystem.GetFileInfo(oEmbAttName)
- ' If oGdPicturePDF.GetStat() = GdPictureStatus.OK Then
- ' Dim FileSize As Integer = oGdPicturePDF.GetEmbeddedFileSize(i)
- ' oValidExt = oValidExtensions.Any(Function(ext) oEmbAttName.EndsWith(ext))
-
- ' If oValidExt = False Then
- ' _Logger.Info("Invalid FileExtension of embedded file [{0}]", oEmbAttName)
- ' Dim GraphicExt = oGraphicExtensions.Any(Function(ext) oEmbAttName.EndsWith(ext))
- ' If GraphicExt = False Then
- ' Dim oInfo = $"Consistency or extension of attached file [{oEmbAttName}] is not ok."
- ' AddTrackingStatusMSSQL(CurrentMail.MessageId, oInfo, "Extension invalid", "Info GUI", "EML_PROF_EXTR_ATT3")
- ' AddToEmailQueueMSSQL(CurrentMail.MessageId, oInfo, "Extension invalid", _EmailAccountID,
- ' _InfoTemplateId, ErrorCode.EmbeddedFileAttachmentCorrupt, oEmbAttName, "")
- ' End If
- ' Continue For
- ' End If
- ' If oGdPicturePDF.GetStat() = GdPictureStatus.OK Then
- ' Dim FileData As Byte() = New Byte(FileSize) {}
- ' Dim status As GdPictureStatus = oGdPicturePDF.ExtractEmbeddedFile(0, FileData)
- ' If status <> GdPictureStatus.OK Or FileSize = 0 Then
- ' oPDFConsistent = False
-
- ' Dim oResult = $"Consistency or PDF-State of embedded file [{oEmbAttName}] is not ok."
- ' AddTrackingStatusMSSQL(CurrentMail.MessageId, oResult, "PDF CONSISTENCY EMBEDDED FILE NOT OK", "Info GUI", "EML_PROF_EXTR_ATT4")
- ' AddToEmailQueueMSSQL(CurrentMail.MessageId, oResult, "PDF CONSISTENCY EMBEDDED FILE NOT OK", _EmailAccountID,
- ' _InfoTemplateId, ErrorCode.EmbeddedFileAttachmentCorrupt, oEmbAttName, "")
- ' Continue For
- ' End If
- ' End If
- ' End If
- ' Next
- ' End If
- ' End If
-
-
-
- ' End If
-
- ' Dim oFileLength As Long = oFileInfo1.Length
- ' If oFileLength > 2 Then
- ' _Logger.Info(String.Format("Attachment saved to [{0}]", oAttachmentFilePath))
- ' InsertAttachmentHistoryEntry(pCurrentMail, oAttachment.SafeFileName, oAttachmentFileName)
- ' oAttachmentCount += 1
- ' Else
- ' _Logger.Warn($"##!! oFileLength for AttachmentObjects is <2 !!##")
- ' Dim oResult = $"Consistency of attached file [{oAttachment.SafeFileName}] is not ok."
- ' AddTrackingStatusMSSQL(CurrentMail.MessageId, oResult, "CONSISTENCY ATTACHED FILE NOT OK", "Info GUI", "EML_PROF_EXTR_ATT5")
- ' AddToEmailQueueMSSQL(CurrentMail.MessageId, oResult, "CONSISTENCY ATTACHED FILE NOT OK", _EmailAccountID,
- ' _InfoTemplateId, ErrorCode.EmbeddedFileAttachmentCorrupt, oAttachment.SafeFileName, "")
- ' Try
- ' File.Delete(oAttachmentFilePath)
- ' Catch ex As Exception
- ' _Logger.Error(ex)
- ' End Try
- ' End If
-
- ' Catch ex As Exception
- ' _Logger.Warn($"Error while saving attachment-name: {ex.Message} - AttachmentName: {oAttachmentFilePath}")
- ' MESSAGE_ERROR = True
-
- ' End Try
-
-
- ' Catch ex As Exception
- ' _Logger.Warn($"Error while creating and saving attachment-name: {ex.Message} - AttachmentName: {oAttachmentFilePath}")
- ' MESSAGE_ERROR = True
-
- ' End Try
- ' TEMP_WORK_FILES.Add(oAttachmentFilePath)
- ' Next
- ' Else
- ' _Logger.Warn($"If cause 2 EXTRACT_ATTACHMENTS: {CurrentTempMailPath} not existing")
- ' End If
- ' Else
- ' _Logger.Warn($"EXTRACT_ATTACHMENTSIf cause 1: CURRENT_TEMP_MAIL_PATH is NOTHING")
- ' End If
- ' CURRENT_ATTMT_COUNT = oAttachmentCount
- ' If MESSAGE_ERROR = True Then
- ' WorkTempFiles("delete")
- ' Return False
-
- ' Else
- ' WorkTempFiles("move")
- ' Return True
-
- ' End If
- ' Catch ex As Exception
- ' _Logger.Error(ex)
- ' MESSAGE_ERROR = True
- ' Return False
- ' End Try
- 'End Function
-
Private Sub WorkTempFiles(pAction As String)
For Each _file In TEMP_WORK_FILES
_Logger.Debug("Working ({0}) on temp work file: [{1}]", pAction, _file)
@@ -1505,7 +1330,7 @@ Public Class clsWorkEmail
End Function
- Private Function WORK_POLL_STEPS() As Boolean
+ Private Function WorkPollSteps() As Boolean
Try
Dim oFoundSomething As Boolean = False
_worked_email = False
@@ -1523,7 +1348,7 @@ Public Class clsWorkEmail
Dim sql As String = String.Format("SELECT * FROM TBEMLP_POLL_INDEXING_STEPS WHERE STEP_ID = {0} AND ACTIVE = 1", POLL_STEP_GUID)
DT_INDEXING_STEPS = _DB_MSSQL.GetDatatable(sql)
If DT_INDEXING_STEPS.Rows.Count > 0 Then
- WORK_INDEXING_STEPS()
+ WorkIndexingSteps()
Else
_Logger.Info("No Indexing Steps found?! - SQL: " & sql)
End If
@@ -1541,7 +1366,7 @@ Public Class clsWorkEmail
If DT_INDEXING_STEPS.Rows.Count >= 1 Then
_Logger.Info($"An index for direct answer was configured. Therefore it will be used...")
End If
- WORK_INDEXING_STEPS()
+ WorkIndexingSteps()
_worked_email = True
End If
@@ -1563,7 +1388,8 @@ Public Class clsWorkEmail
Return False
End Try
End Function
- Private Function WORK_INDEXING_STEPS() As Boolean
+
+ Private Function WorkIndexingSteps() As Boolean
Try
For Each row As DataRow In DT_INDEXING_STEPS.Rows
@@ -1583,6 +1409,7 @@ Public Class clsWorkEmail
Return False
End Try
End Function
+
Private Function IndexFile(oidxname As String, oidxvalue As String, oConcat_act_Value As Boolean)
Dim OArrIndex() As String
@@ -1633,9 +1460,9 @@ Public Class clsWorkEmail
End If
End Function
- Private Function GET_WMDOC_INFO() As Boolean
+ Private Function GetWMDocInfo() As Boolean
Try
- Dim oDOC_ID = REGEX_CHECK_DOC_ID(CURRENT_MAIL_SUBJECT.Replace("10636", "133092").Replace("10644", "133092"))
+ Dim oDOC_ID = RegExCheckDocID(CURRENT_MAIL_SUBJECT.Replace("10636", "133092").Replace("10644", "133092"))
If Not IsNothing(oDOC_ID) Then
Dim oDT_BASE_ATTR As DataTable = _DB_MSSQL.GetDatatableWithConnection("SELECT * FROM BaseAttributes WHERE dwDocID = " & oDOC_ID, _windreamConnectionString)
If Not IsNothing(oDT_BASE_ATTR) Then
@@ -1680,7 +1507,8 @@ Public Class clsWorkEmail
Return False
End Try
End Function
- Public Function REGEX_CHECK_DOC_ID(SearchString As String)
+
+ Public Function RegExCheckDocID(SearchString As String)
Try
Dim oRegex As New Regex("\[DID#{1}([0-9]+)]{1}")
_Logger.Debug("REGEX_String before replacing: '" & SearchString & "'")
diff --git a/App/EmailProfiler.Common/clsWorker.vb b/App/EmailProfiler.Common/clsWorker.vb
index db619d6..dd8cdde 100644
--- a/App/EmailProfiler.Common/clsWorker.vb
+++ b/App/EmailProfiler.Common/clsWorker.vb
@@ -1,4 +1,5 @@
-Imports DigitalData.Modules.Base
+Imports System.IO
+Imports DigitalData.Modules.Base
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Messaging.Mail
@@ -7,13 +8,13 @@ Imports Limilabs.Mail
Imports Limilabs.Mail.Headers
Public Class clsWorker
- Private ReadOnly Logger As Logger
- Private ReadOnly Fetcher As MailFetcher
- Private ReadOnly Database As MSSQLServer
+ Private ReadOnly _Logger As Logger
+ Private ReadOnly _Fetcher As MailFetcher
+ Private ReadOnly _Database As MSSQLServer
Private ReadOnly _UseWindream As Boolean = False
Private ReadOnly ClassWindreamAllgemein As clsWindream_allgemein
Private ReadOnly ClassWindreamIndex As clsWindream_Index
- Private ReadOnly ClassWorkMail As clsWorkEmail
+ Private ReadOnly _ClassWorkMail As clsWorkEmail
Private ReadOnly Encryption As clsEncryption
Private ReadOnly _ProfileId As Integer = 0D
Private ReadOnly EmailLimitationSender As String = ""
@@ -24,15 +25,15 @@ Public Class clsWorker
Private ReadOnly LocalEmlFile As String = ""
Sub New(pLogConfig As LogConfig, pConnectionString As String, pWindreamConnectionString As String, pPollProfileId As Integer, pConfigData As ConfigData, Optional pLocalEML As String = "")
- Logger = pLogConfig.GetLogger
+ _Logger = pLogConfig.GetLogger
'ClassEmailImap = New clsEmailIMAP(pLogConfig)
- Fetcher = New MailFetcher(pLogConfig)
- Database = New MSSQLServer(pLogConfig, pConnectionString)
+ _Fetcher = New MailFetcher(pLogConfig)
+ _Database = New MSSQLServer(pLogConfig, pConnectionString)
_UseWindream = pConfigData.UseWindream
EmailLimitationSender = pConfigData.EmailSenderLimitation
If EmailLimitationSender.Contains("@") Then
- Logger.Info("Email Sender Limitation active for address: [{0}]", EmailLimitationSender)
+ _Logger.Info("Email Sender Limitation active for address: [{0}]", EmailLimitationSender)
EmailLimitationEnabled = True
End If
@@ -41,7 +42,7 @@ Public Class clsWorker
ClassWindreamIndex = New clsWindream_Index(pLogConfig)
End If
- ClassWorkMail = New clsWorkEmail(pLogConfig, pConnectionString, pWindreamConnectionString, pConfigData)
+ _ClassWorkMail = New clsWorkEmail(pLogConfig, pConnectionString, pWindreamConnectionString, pConfigData)
Encryption = New clsEncryption("!35452didalog=", pLogConfig)
_ProfileId = pPollProfileId
@@ -50,14 +51,14 @@ Public Class clsWorker
Private Sub DeleteTempFiles()
For Each _file In TEMP_FILES
- Logger.Debug("Trying to delete temp file: [{0}]", _file)
+ _Logger.Debug("Trying to delete temp file: [{0}]", _file)
- If IO.File.Exists(_file) Then
+ If File.Exists(_file) Then
Try
- IO.File.Delete(_file)
+ File.Delete(_file)
Catch ex As Exception
- Logger.Error(ex)
- Logger.Warn("Could not delete the tempfile from TEMP_FILES: [{0}]", _file)
+ _Logger.Error(ex)
+ _Logger.Warn("Could not delete the tempfile from TEMP_FILES: [{0}]", _file)
End Try
End If
Next
@@ -65,7 +66,7 @@ Public Class clsWorker
End Sub
Private Function LoadEmailAccounts() As DataTable
- Return Database.GetDatatable("SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1")
+ Return _Database.GetDatatable("SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1")
End Function
Private Function LoadPollingProfiles(pProfileId As Integer) As DataTable
@@ -77,49 +78,42 @@ Public Class clsWorker
oSQL &= $" AND GUID = {pProfileId}"
End If
- Return Database.GetDatatable(oSQL)
+ Return _Database.GetDatatable(oSQL)
End Function
- Public Sub Start_WorkingProfiles(Optional LocalEmail As Boolean = False, Optional CallFromService As Boolean = False)
+ Public Sub Start_WorkingProfiles(Optional LocalEmail As Boolean = False)
Try
DeleteTempFiles()
IS_LOCAL_TEST = LocalEmail
- If Database.DBInitialized = False Then
- Logger.Warn("Database is not initialized. Exiting.")
+ If _Database.DBInitialized = False Then
+ _Logger.Warn("Database is not initialized. Exiting.")
Exit Sub
End If
- Logger.Debug("now windream_init... ")
+ _Logger.Debug("now windream_init... ")
If _UseWindream Then
If ClassWindreamAllgemein.Init = False Then
- Logger.Info("windream could not be initialized!!")
+ _Logger.Info("windream could not be initialized!!")
Exit Sub
Else
- Logger.Debug("windream_initialized!")
+ _Logger.Debug("windream_initialized!")
End If
End If
Dim EmailAccountTable As DataTable = LoadEmailAccounts()
Dim PollingProfileTable = LoadPollingProfiles(_ProfileId)
- 'Dim oSQLGDPicture = "SELECT LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE ACTIVE = 1"
- 'If CallFromService = True Then
- ' oSQLGDPicture = "SELECT LICENSE FROM TBDD_3RD_PARTY_MODULES WHERE NAME = 'GDPICTURE EMAIL_PROFILER'"
- 'End If
-
- 'GDPictureLicense = Database.GetScalarValue(oSQLGDPicture)
-
If IsNothing(PollingProfileTable) Then
- Logger.Warn("Error while fetching Polling Profiles. Exiting.")
+ _Logger.Warn("Error while fetching Polling Profiles. Exiting.")
Exit Sub
End If
If PollingProfileTable.Rows.Count = 0 Then
- Logger.Warn("No active Polling Profiles found. Exiting.")
+ _Logger.Warn("No active Polling Profiles found. Exiting.")
Exit Sub
End If
- Logger.Debug("Count of active profiles: " & PollingProfileTable.Rows.Count.ToString)
+ _Logger.Debug("Count of active profiles: " & PollingProfileTable.Rows.Count.ToString)
For Each oProfile As DataRow In PollingProfileTable.Rows
@@ -128,31 +122,31 @@ Public Class clsWorker
CURRENT_PROFILE_GUID = oProfile.Item("GUID")
DT_POLL_PROCESS = Nothing
Dim sql = String.Format("SELECT * FROM TBEMLP_POLL_PROCESS WHERE PROFILE_ID = {0} AND ACTIVE = 1", CURRENT_PROFILE_GUID)
- DT_POLL_PROCESS = Database.GetDatatable(sql)
+ DT_POLL_PROCESS = _Database.GetDatatable(sql)
If Not IsNothing(DT_POLL_PROCESS) Then
If DT_POLL_PROCESS.Rows.Count = 0 Then
- Logger.Info("No processes configured for this Email-Profile - " & sql)
+ _Logger.Info("No processes configured for this Email-Profile - " & sql)
Continue For
Else
DT_STEPS = Nothing
- DT_STEPS = Database.GetDatatable($"SELECT T.* FROM TBEMLP_POLL_STEPS T,TBEMLP_POLL_PROCESS T1 WHERE T.PROCESS_ID = T1.GUID AND T1.PROFILE_ID = {CURRENT_PROFILE_GUID} AND T1.ACTIVE = 1")
+ DT_STEPS = _Database.GetDatatable($"SELECT T.* FROM TBEMLP_POLL_STEPS T,TBEMLP_POLL_PROCESS T1 WHERE T.PROCESS_ID = T1.GUID AND T1.PROFILE_ID = {CURRENT_PROFILE_GUID} AND T1.ACTIVE = 1")
End If
Else
- Logger.Warn("DT_POLL_PROCESS is nothing")
+ _Logger.Warn("DT_POLL_PROCESS is nothing")
Continue For
End If
CURRENT_EMAIL_GUID = 0
CURRENT_POLL_TYPE = oProfile.Item("POLL_TYPE")
- Logger.Debug(String.Format("Working on profile: ({0}-{1}-{2}) ", oProfile.Item("GUID"), oProfile.Item("PROFILE_NAME"), CURRENT_POLL_TYPE))
+ _Logger.Debug(String.Format("Working on profile: ({0}-{1}-{2}) ", oProfile.Item("GUID"), oProfile.Item("PROFILE_NAME"), CURRENT_POLL_TYPE))
CURRENT_EMAIL_GUID = oProfile.Item("EMAIL_CONF_ID")
Dim FilteredRows As List(Of DataRow) = EmailAccountTable.
Select($"GUID = {CURRENT_EMAIL_GUID}").
ToList()
- Logger.Debug("FilteredRows: " & FilteredRows.Count)
+ _Logger.Debug("FilteredRows: " & FilteredRows.Count)
If FilteredRows.Count = 1 Then
Dim oRow = FilteredRows(0)
@@ -165,18 +159,18 @@ Public Class clsWorker
Dim oMailArchiveFolder = oRow("ARCHIVE_FOLDER")
Dim oMailAuthType = oRow("AUTH_TYPE")
- Logger.Debug("Mail Server: {0}", oMailServer)
- Logger.Debug("Mail From: {0}", oMailFrom)
+ _Logger.Debug("Mail Server: {0}", oMailServer)
+ _Logger.Debug("Mail From: {0}", oMailFrom)
Dim PWPlain = Encryption.DecryptData(oMailPassword)
If Not IsNothing(PWPlain) Then
If PWPlain <> "" Then
oMailPassword = PWPlain
Else
- Logger.Warn("PWPlain is string.empty - Could not decrypt passwort")
+ _Logger.Warn("PWPlain is string.empty - Could not decrypt passwort")
End If
Else
- Logger.Warn("PWPlain is nothing - Could not decrypt passwort")
+ _Logger.Warn("PWPlain is nothing - Could not decrypt passwort")
End If
CURRENT_WORKMAIL_UID_LIST.Clear()
@@ -192,26 +186,24 @@ Public Class clsWorker
oPollResult = FetchMessages(oMailServer, oMailPortIn, oMailUser, oMailPassword, oMailAuthType, oMailArchiveFolder)
Case Else
- Logger.Error("Poll Type [{0}] is not supported!", CURRENT_POLL_TYPE)
+ _Logger.Error("Poll Type [{0}] is not supported!", CURRENT_POLL_TYPE)
oPollResult = False
End Select
End If
If CURRENT_WORKMAIL_UID_LIST.Count() > 0 Or LocalEmail = True Then
If LocalEmail Then
- Logger.Info("Working with local Mail")
+ _Logger.Info("Working with local Mail")
Dim oEmail As IMail = New MailBuilder().CreateFromEmlFile(LocalEmlFile)
-
Dim oUID = String.Concat(Now.Month.ToString, Now.Day, Now.Hour, Now.Minute, Now.Second)
- ClassWorkMail.WorkEmailMessage(oEmail, oUID, oValidationSql)
- 'CURRENT_MAIL_MESSAGE = Nothing
+ _ClassWorkMail.WorkEmailMessage(oEmail, oUID, oValidationSql)
Else
Try
- Logger.Info(String.Format("Pulled: [{0}] E-Mails", CURRENT_WORKMAIL_UID_LIST.Count()))
+ _Logger.Info(String.Format("Pulled: [{0}] E-Mails", CURRENT_WORKMAIL_UID_LIST.Count()))
For Each oMailId In CURRENT_WORKMAIL_UID_LIST
- Dim oEmail As IMail = Fetcher.FetchMail(oMailId)
+ Dim oEmail As IMail = _Fetcher.FetchMail(oMailId)
If Not IsNothing(oEmail) Then
If EmailLimitationEnabled Then
@@ -220,52 +212,51 @@ Public Class clsWorker
oEmailFrom = m.Address
Next
If oEmailFrom <> EmailLimitationSender Then
- Logger.Debug($"Skipping email {oEmailFrom} ...Subject [{oEmail.Subject}]")
+ _Logger.Debug($"Skipping email {oEmailFrom} ...Subject [{oEmail.Subject}]")
Continue For
End If
End If
- If ClassWorkMail.WorkEmailMessage(oEmail, oMailId, oValidationSql) = True Then
+ ' Hier wird die einzelne EMail jetzt verarbeitet
+ If _ClassWorkMail.WorkEmailMessage(oEmail, oMailId, oValidationSql) = True Then
If LocalEmlFile = "" Then
DeleteOrMoveEmailFile(oMailId)
End If
End If
Else
- Logger.Info("### oEmail was nothing ###")
+ _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
- Fetcher.Disconnect()
+ _Fetcher.Disconnect()
End If
Catch ex As Exception
- Logger.Error(ex)
- Logger.Warn($"Unexpected Error working CURRENT_WORKMAIL_UID_LIST: {ex.Message} ")
+ _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!"))
+ _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!")
+ _Logger.Warn("For the Email-Profile ID " & CURRENT_EMAIL_GUID & " no record could be found!")
End If
- Database.ExecuteNonQuery("UPDATE TBEMLP_POLL_PROFILES SET LAST_TICK = GETDATE() WHERE GUID = " & oProfile.Item("GUID").ToString)
+ _Database.ExecuteNonQuery("UPDATE TBEMLP_POLL_PROFILES SET LAST_TICK = GETDATE() WHERE GUID = " & oProfile.Item("GUID").ToString)
Else
- Logger.Warn("For the Email-Profile ID " & CURRENT_EMAIL_GUID & " no record could be found! Check wether Email-Profile is active!")
+ _Logger.Warn("For the Email-Profile ID " & CURRENT_EMAIL_GUID & " no record could be found! Check wether Email-Profile is active!")
End If
Next
DeleteTempFiles()
- Database.ExecuteNonQuery("UPDATE TBEMLP_CONFIG SET LAST_TICK = GETDATE() WHERE GUID = 1")
+ _Database.ExecuteNonQuery("UPDATE TBEMLP_CONFIG SET LAST_TICK = GETDATE() WHERE GUID = 1")
Catch ex As Exception
- Logger.Error(ex)
+ _Logger.Error(ex)
End Try
End Sub
@@ -277,9 +268,9 @@ Public Class clsWorker
Dim oClientId As String = pServer
Dim oClientSecret As String = pPassword
Dim oTenantId As String = pArchiveFolder
- oSession = Fetcher.ConnectToO365(pUsername, oClientId, oTenantId, oClientSecret)
+ oSession = _Fetcher.ConnectToO365(pUsername, oClientId, oTenantId, oClientSecret)
Else
- oSession = Fetcher.Connect(pServer, pPort, pUsername, pPassword, pAuthType, New MailSession.MailSessionOptions() With {
+ oSession = _Fetcher.Connect(pServer, pPort, pUsername, pPassword, pAuthType, New MailSession.MailSessionOptions() With {
.EnableTls1_1 = True,
.EnableTls1_2 = True
})
@@ -287,25 +278,25 @@ Public Class clsWorker
If oSession.Connected = False AndAlso oSession.Error IsNot Nothing Then
- Logger.Warn("Connection to Mail Server failed!")
- Logger.Error(oSession.Error)
+ _Logger.Warn("Connection to Mail Server failed!")
+ _Logger.Error(oSession.Error)
Return False
ElseIf oSession.Connected = False Then
- Logger.Warn("Connection to Mail Server failed!")
+ _Logger.Warn("Connection to Mail Server failed!")
Return False
End If
- CURRENT_ImapObject = Fetcher.Client
- Dim oMailIds As List(Of Long) = Fetcher.ListAllMails()
+ CURRENT_ImapObject = _Fetcher.Client
+ Dim oMailIds As List(Of Long) = _Fetcher.ListAllMails()
If oMailIds Is Nothing Then
- Logger.Warn("List of UIDs was Nothing. Exiting.")
+ _Logger.Warn("List of UIDs was Nothing. Exiting.")
Return False
End If
If oMailIds.Count = 0 Then
- Logger.Debug("No Emails found.")
+ _Logger.Debug("No Emails found.")
Return True
End If
@@ -314,7 +305,7 @@ Public Class clsWorker
Return True
Catch ex As Exception
- Logger.Error(ex)
+ _Logger.Error(ex)
Return False
End Try
@@ -322,41 +313,41 @@ Public Class clsWorker
Private Sub DeleteOrMoveEmailFile(pMailId As Integer)
Try
If MESSAGE_ERROR = True Then
- Logger.Warn("Did not delete or move Message with UID [{0}] as there was an MessageError!", pMailId)
+ _Logger.Warn("Did not delete or move Message with UID [{0}] as there was an MessageError!", pMailId)
Return
End If
- If IsNothing(Fetcher.Client) Then
- Logger.Warn("Did not delete or move Message with UID [{0}] as ImapClient is null", pMailId)
+ If IsNothing(_Fetcher.Client) Then
+ _Logger.Warn("Did not delete or move Message with UID [{0}] as ImapClient is null", pMailId)
Return
End If
If DeleteMail = True Then
- Fetcher.Client.DeleteMessageByUID(pMailId)
- Logger.Info("Email with Id [{0}] was deleted.", pMailId)
+ _Fetcher.Client.DeleteMessageByUID(pMailId)
+ _Logger.Info("Email with Id [{0}] was deleted.", pMailId)
Else
If TestImapFolderExists(SUCCESS_IMAP_FOLDER) Then
- If Fetcher.Client.MoveByUID(pMailId, SUCCESS_IMAP_FOLDER) IsNot Nothing Then
- Logger.Info("Email with UID [{0}] was moved", pMailId)
+ If _Fetcher.Client.MoveByUID(pMailId, SUCCESS_IMAP_FOLDER) IsNot Nothing Then
+ _Logger.Info("Email with UID [{0}] was moved", pMailId)
End If
Else
- Logger.Warn("IMAP Folder [{0}] does not exist. Emails could not be moved!", SUCCESS_IMAP_FOLDER)
+ _Logger.Warn("IMAP Folder [{0}] does not exist. Emails could not be moved!", SUCCESS_IMAP_FOLDER)
End If
End If
Catch ex As Exception
- Logger.Error(ex)
+ _Logger.Error(ex)
End Try
End Sub
Private Function TestImapFolderExists(pFolderName As String) As Boolean
Try
- Return Fetcher.Client.
+ Return _Fetcher.Client.
GetFolders().
Where(Function(f) f.Name = pFolderName).
Any()
Catch ex As Exception
- Logger.Warn("Could not get IMAP folders. Returning False.")
- Logger.Error(ex)
+ _Logger.Warn("Could not get IMAP folders. Returning False.")
+ _Logger.Error(ex)
Return False
End Try
End Function
diff --git a/App/EmailProfiler.Service/MyService.vb b/App/EmailProfiler.Service/MyService.vb
index 1828ac1..fe53cd3 100644
--- a/App/EmailProfiler.Service/MyService.vb
+++ b/App/EmailProfiler.Service/MyService.vb
@@ -13,7 +13,7 @@ Public Class MyService
Private LogConfig As LogConfig
Private Logger As Logger
- Private EmailWorker As clsWorkEmail
+ 'Private EmailWorker As clsWorkEmail
Private _DBConfig As ClassDBConfig.Config
@@ -55,8 +55,9 @@ Public Class MyService
Logger.Warn("Error while initializing DBConfig")
End If
- EmailWorker = New clsWorkEmail(LogConfig, _ConfigData.ConnectionString, _DBConfig.WindreamConnectionString, _ConfigData)
- Logger.Debug("Module Workmail initialized")
+ ' MP 10.01.25 - Das Objekt wird hier gar nicht weiter verwendet. erstmal raus damit
+ 'EmailWorker = New clsWorkEmail(LogConfig, _ConfigData.ConnectionString, _DBConfig.WindreamConnectionString, _ConfigData)
+ 'Logger.Debug("Module Workmail initialized")
If Database.DBInitialized = False Then
Logger.Warn("No Connection was established! Exiting.")
@@ -100,7 +101,7 @@ Public Class MyService
_DBConfig.WindreamConnectionString,
oProfileIdForPolling,
_ConfigData)
- oWorker.Start_WorkingProfiles(False, True)
+ oWorker.Start_WorkingProfiles(False)
Catch ex As Exception
Logger.Error(ex)
End Try
diff --git a/App/wisag_check_Att/Form1.Designer.vb b/App/wisag_check_Att/Form1.Designer.vb
index 7dcbabe..1e68b2b 100644
--- a/App/wisag_check_Att/Form1.Designer.vb
+++ b/App/wisag_check_Att/Form1.Designer.vb
@@ -1,6 +1,6 @@
_
Partial Class Form1
- Inherits System.Windows.Forms.Form
+ Inherits DevExpress.XtraBars.Ribbon.RibbonForm
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
_
@@ -22,34 +22,41 @@ Partial Class Form1
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
_
Private Sub InitializeComponent()
+ Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
Me.bsifolderbrowser = New DevExpress.XtraBars.BarStaticItem()
- Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
+ Me.btRunEmailCheck = New DevExpress.XtraBars.BarButtonItem()
Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem()
Me.bsitemppath = New DevExpress.XtraBars.BarStaticItem()
- Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
+ Me.BarButtonItem4 = New DevExpress.XtraBars.BarButtonItem()
+ Me.btExtractMailAttachments = New DevExpress.XtraBars.BarButtonItem()
+ Me.rpPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
+ Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
+ Me.RibbonPageGroup4 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
Me.FolderBrowserDialog1 = New System.Windows.Forms.FolderBrowserDialog()
Me.ListBox1 = New System.Windows.Forms.ListBox()
- Me.RibbonPageGroup3 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
- Me.BarButtonItem4 = New DevExpress.XtraBars.BarButtonItem()
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
+ Me.OpenFileDialog2 = New System.Windows.Forms.OpenFileDialog()
+ Me.OpenFileDialog3 = New System.Windows.Forms.OpenFileDialog()
+ Me.BehaviorManager1 = New DevExpress.Utils.Behaviors.BehaviorManager(Me.components)
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
+ CType(Me.BehaviorManager1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'RibbonControl1
'
Me.RibbonControl1.ExpandCollapseItem.Id = 0
- Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.bsifolderbrowser, Me.BarButtonItem2, Me.BarButtonItem3, Me.bsitemppath, Me.BarButtonItem4})
+ Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.bsifolderbrowser, Me.btRunEmailCheck, Me.BarButtonItem3, Me.bsitemppath, Me.BarButtonItem4, Me.btExtractMailAttachments})
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
- Me.RibbonControl1.MaxItemId = 7
+ Me.RibbonControl1.MaxItemId = 8
Me.RibbonControl1.Name = "RibbonControl1"
- Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
- Me.RibbonControl1.Size = New System.Drawing.Size(800, 150)
+ Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.rpPage1})
+ Me.RibbonControl1.Size = New System.Drawing.Size(800, 158)
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
'
'BarButtonItem1
@@ -67,12 +74,12 @@ Partial Class Form1
Me.bsifolderbrowser.Name = "bsifolderbrowser"
Me.bsifolderbrowser.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
'
- 'BarButtonItem2
+ 'btRunEmailCheck
'
- Me.BarButtonItem2.Caption = "Run Email_Check"
- Me.BarButtonItem2.Id = 3
- Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
- Me.BarButtonItem2.Name = "BarButtonItem2"
+ Me.btRunEmailCheck.Caption = "Run Email_Check"
+ Me.btRunEmailCheck.Id = 3
+ Me.btRunEmailCheck.ImageOptions.SvgImage = CType(resources.GetObject("btRunEmailCheck.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
+ Me.btRunEmailCheck.Name = "btRunEmailCheck"
'
'BarButtonItem3
'
@@ -89,11 +96,25 @@ Partial Class Form1
Me.bsitemppath.Name = "bsitemppath"
Me.bsitemppath.PaintStyle = DevExpress.XtraBars.BarItemPaintStyle.CaptionGlyph
'
- 'RibbonPage1
+ 'BarButtonItem4
'
- Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup3})
- Me.RibbonPage1.Name = "RibbonPage1"
- Me.RibbonPage1.Text = "RibbonPage1"
+ Me.BarButtonItem4.Caption = "Extract PDF-Attachments"
+ Me.BarButtonItem4.Id = 6
+ Me.BarButtonItem4.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem4.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
+ Me.BarButtonItem4.Name = "BarButtonItem4"
+ '
+ 'btExtractMailAttachments
+ '
+ Me.btExtractMailAttachments.Caption = "Extract Mail-Attachments"
+ Me.btExtractMailAttachments.Id = 7
+ Me.btExtractMailAttachments.ImageOptions.SvgImage = CType(resources.GetObject("btExtractMailAttachments.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
+ Me.btExtractMailAttachments.Name = "btExtractMailAttachments"
+ '
+ 'rpPage1
+ '
+ Me.rpPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2, Me.RibbonPageGroup3, Me.RibbonPageGroup4})
+ Me.rpPage1.Name = "rpPage1"
+ Me.rpPage1.Text = "Funktionen"
'
'RibbonPageGroup1
'
@@ -104,46 +125,55 @@ Partial Class Form1
'
'RibbonPageGroup2
'
- Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem2)
+ Me.RibbonPageGroup2.ItemLinks.Add(Me.btRunEmailCheck)
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
Me.RibbonPageGroup2.Text = "Run"
'
- 'RibbonStatusBar1
- '
- Me.RibbonStatusBar1.ItemLinks.Add(Me.bsifolderbrowser)
- Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitemppath)
- Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 423)
- Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
- Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
- Me.RibbonStatusBar1.Size = New System.Drawing.Size(800, 27)
- '
- 'ListBox1
- '
- Me.ListBox1.Dock = System.Windows.Forms.DockStyle.Fill
- Me.ListBox1.FormattingEnabled = True
- Me.ListBox1.Location = New System.Drawing.Point(0, 150)
- Me.ListBox1.Name = "ListBox1"
- Me.ListBox1.Size = New System.Drawing.Size(800, 273)
- Me.ListBox1.TabIndex = 2
- '
'RibbonPageGroup3
'
Me.RibbonPageGroup3.ItemLinks.Add(Me.BarButtonItem4)
Me.RibbonPageGroup3.Name = "RibbonPageGroup3"
Me.RibbonPageGroup3.Text = "PDF Handling"
'
- 'BarButtonItem4
+ 'RibbonPageGroup4
'
- Me.BarButtonItem4.Caption = "Extract PDF-Attachments"
- Me.BarButtonItem4.Id = 6
- Me.BarButtonItem4.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem4.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
- Me.BarButtonItem4.Name = "BarButtonItem4"
+ Me.RibbonPageGroup4.ItemLinks.Add(Me.btExtractMailAttachments)
+ Me.RibbonPageGroup4.Name = "RibbonPageGroup4"
+ Me.RibbonPageGroup4.Text = "EML Handling"
+ '
+ 'RibbonStatusBar1
+ '
+ Me.RibbonStatusBar1.ItemLinks.Add(Me.bsifolderbrowser)
+ Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitemppath)
+ Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 426)
+ Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
+ Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
+ Me.RibbonStatusBar1.Size = New System.Drawing.Size(800, 24)
+ '
+ 'ListBox1
+ '
+ Me.ListBox1.Dock = System.Windows.Forms.DockStyle.Fill
+ Me.ListBox1.FormattingEnabled = True
+ Me.ListBox1.Location = New System.Drawing.Point(0, 158)
+ Me.ListBox1.Name = "ListBox1"
+ Me.ListBox1.Size = New System.Drawing.Size(800, 268)
+ Me.ListBox1.TabIndex = 2
'
'OpenFileDialog1
'
Me.OpenFileDialog1.Filter = "PDF Files|*.pdf"
Me.OpenFileDialog1.InitialDirectory = "e:\"
'
+ 'OpenFileDialog2
+ '
+ Me.OpenFileDialog2.Filter = "EML Files|*.eml"
+ Me.OpenFileDialog2.InitialDirectory = "e:\temp"
+ Me.OpenFileDialog2.Title = "Wähle EML-Datei"
+ '
+ 'OpenFileDialog3
+ '
+ Me.OpenFileDialog3.FileName = "OpenFileDialog3"
+ '
'Form1
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
@@ -153,21 +183,24 @@ Partial Class Form1
Me.Controls.Add(Me.RibbonStatusBar1)
Me.Controls.Add(Me.RibbonControl1)
Me.Name = "Form1"
- Me.Text = "Form1"
+ Me.Ribbon = Me.RibbonControl1
+ Me.StatusBar = Me.RibbonStatusBar1
+ Me.Text = "EMail Profiler - Test Tool"
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
+ CType(Me.BehaviorManager1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl
- Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage
+ Friend WithEvents rpPage1 As DevExpress.XtraBars.Ribbon.RibbonPage
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar
Friend WithEvents FolderBrowserDialog1 As FolderBrowserDialog
Friend WithEvents bsifolderbrowser As DevExpress.XtraBars.BarStaticItem
- Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents btRunEmailCheck As DevExpress.XtraBars.BarButtonItem
Friend WithEvents BarButtonItem3 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents ListBox1 As ListBox
@@ -175,4 +208,9 @@ Partial Class Form1
Friend WithEvents BarButtonItem4 As DevExpress.XtraBars.BarButtonItem
Friend WithEvents RibbonPageGroup3 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents OpenFileDialog1 As OpenFileDialog
+ Friend WithEvents btExtractMailAttachments As DevExpress.XtraBars.BarButtonItem
+ Friend WithEvents RibbonPageGroup4 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
+ Friend WithEvents OpenFileDialog2 As OpenFileDialog
+ Friend WithEvents OpenFileDialog3 As OpenFileDialog
+ Friend WithEvents BehaviorManager1 As DevExpress.Utils.Behaviors.BehaviorManager
End Class
diff --git a/App/wisag_check_Att/Form1.resx b/App/wisag_check_Att/Form1.resx
index 47ef8ef..0cc1fac 100644
--- a/App/wisag_check_Att/Form1.resx
+++ b/App/wisag_check_Att/Form1.resx
@@ -154,7 +154,7 @@
NC43QzMyLjEsMTQuMywzMS44LDE0LDMxLjMsMTR6IiBjbGFzcz0iWWVsbG93IiAvPg0KPC9zdmc+Cw==
-
+
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
@@ -227,6 +227,25 @@
MywzdjE2YzAsMC42LTAuNCwxLTEsMXMtMS0wLjQtMS0xVjEwaC0ydjEzICAgYzAsMS43LDEuMywzLDMs
M3MzLTEuMywzLTNWN2MwLTIuOC0yLjItNS01LTVzLTUsMi4yLTUsNXYxNmMwLDMuOSwzLjEsNyw3LDdz
Ny0zLjEsNy03VjEwSDIyeiIgY2xhc3M9IkJsYWNrIiAvPg0KICA8L2c+DQo8L3N2Zz4L
+
+
+
+
+ AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
+ LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+ dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAKQCAAAC77u/
+ PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+ IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+ MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+ Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
+ MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku
+ WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLlJlZHtmaWxsOiNEMTFD
+ MUM7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7Zmls
+ bDojNzI3MjcyO30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuNzU7fQo8L3N0eWxl
+ Pg0KICA8ZyBpZD0iTWFpbCI+DQogICAgPHBhdGggZD0iTTE2LDE4LjNsMTQtOFYyNWMwLDAuNS0wLjUs
+ MS0xLDFIM2MtMC41LDAtMS0wLjUtMS0xVjEwLjNMMTYsMTguM3ogTTI5LDZIM0MyLjUsNiwyLDYuNSwy
+ LDd2MWwxNCw4bDE0LThWNyAgIEMzMCw2LjUsMjkuNSw2LDI5LDZ6IiBjbGFzcz0iQmxhY2siIC8+DQog
+ IDwvZz4NCjwvc3ZnPgs=
@@ -235,4 +254,13 @@
186, 17
+
+ 327, 17
+
+
+ 468, 17
+
+
+ 609, 17
+
\ No newline at end of file
diff --git a/App/wisag_check_Att/Form1.vb b/App/wisag_check_Att/Form1.vb
index 1e40ffa..87b3906 100644
--- a/App/wisag_check_Att/Form1.vb
+++ b/App/wisag_check_Att/Form1.vb
@@ -1,8 +1,10 @@
Imports System.IO
Imports System.Text.RegularExpressions
+Imports DevExpress.Data.Helpers.ExpressiveSortInfo
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
+Imports EmailProfiler.Common
Imports GdPicture14
Imports Independentsoft.Email.Mime
Imports Attachment = Independentsoft.Email.Mime.Attachment
@@ -13,6 +15,7 @@ Public Class Form1
Private Shared _MyLogger As LogConfig
Private _Worklist As List(Of String)
Private MyDatabase As MSSQLServer
+
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
_MyLogger = New LogConfig(LogConfig.PathType.CustomPath, Path.Combine(My.Application.Info.DirectoryPath, "Log"), Nothing, My.Application.Info.CompanyName, My.Application.Info.ProductName)
@@ -64,7 +67,8 @@ Public Class Form1
End If
End Sub
- Private Sub BarButtonItem2_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick
+ Private Sub btRunEmailCheck_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btRunEmailCheck.ItemClick
+ ' Check Email
ListBox1.Items.Clear()
Dim di As New DirectoryInfo(bsifolderbrowser.Caption)
' Get a reference to each file in that directory.
@@ -132,7 +136,7 @@ Public Class Form1
oString = " ## Attachment NOT EXISTING ##"
_logger.Info(oString)
ListBox1.Items.Add(oString)
- If System.IO.File.Exists(oAttachmentFileString) = False Then
+ If File.Exists(oAttachmentFileString) = False Then
_logger.Debug(String.Format("Trying to save attachment [{0}]", oAttachmentFileString))
Try
oAttachment.Save(oAttachmentFileString)
@@ -190,7 +194,7 @@ Public Class Form1
End Try
End Function
- Private Sub BarButtonItem4_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem4.ItemClick
+ Private Sub btExtractPdfAttachments_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem4.ItemClick
' FileOpen Dialog
Dim fileOpenDlg = OpenFileDialog1
@@ -268,4 +272,33 @@ Public Class Form1
End Try
End Sub
+
+ Private Sub btExtractMailAttachments_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btExtractMailAttachments.ItemClick
+ ' Hier verarbeiten wir eine ausgewählte EML-Datei
+ ' und speichern alle Anhänge auf die Platte.
+ ' Der Einstieg und der Ablauf entspricht dem des Services.
+ ' Unterschied ist die lokale Datei
+
+ Dim connectionString As String = "Server=SDD-VMP04-SQL17\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=dd"
+
+ Dim oConfigData As ConfigData = New ConfigData() With {
+ .Debug = False,
+ .GDPictureVersion = "11.2024",
+ .UseWindream = False,
+ .ConnectionString = connectionString
+ }
+
+ Dim Worker As ExtractAttachmentsFromEMLFile = New ExtractAttachmentsFromEMLFile()
+
+ ' FileOpen Dialog
+ Dim fileOpenDlg = OpenFileDialog2
+
+ If fileOpenDlg.ShowDialog() = DialogResult.OK Then
+ Dim oFilename = fileOpenDlg.FileName
+
+ ' Call Extract Method
+ Worker.CallWorkerProcess(oFilename, oConfigData)
+ End If
+
+ End Sub
End Class
diff --git a/App/wisag_check_Att/TestClasses/ExtractAttachmentsFromEMLFile.vb b/App/wisag_check_Att/TestClasses/ExtractAttachmentsFromEMLFile.vb
new file mode 100644
index 0000000..3d2714b
--- /dev/null
+++ b/App/wisag_check_Att/TestClasses/ExtractAttachmentsFromEMLFile.vb
@@ -0,0 +1,30 @@
+Imports System.IO
+Imports DigitalData.Modules.Logging
+Imports EmailProfiler.Common
+
+Public Class ExtractAttachmentsFromEMLFile
+
+ Private ReadOnly _LogConfig As LogConfig
+
+ Sub New()
+
+ Dim oLogPath = Path.Combine(My.Application.Info.DirectoryPath, "Log")
+ _LogConfig = New LogConfig(LogConfig.PathType.CustomPath, oLogPath, Nothing, "Digital Data", "DD EmailProfiler TEST", 30)
+
+ End Sub
+
+ Public Sub CallWorkerProcess(pEMLFilename As String, pConfigData As ConfigData)
+
+ Dim oProfileIdForPolling = 0
+ Dim oWorker As New clsWorker(_LogConfig,
+ pConfigData.ConnectionString,
+ "",
+ oProfileIdForPolling,
+ pConfigData,
+ pEMLFilename)
+
+ oWorker.Start_WorkingProfiles(True)
+
+ End Sub
+
+End Class
diff --git a/App/wisag_check_Att/wisag_check_Att.vbproj b/App/wisag_check_Att/wisag_check_Att.vbproj
index 65b0fea..f69805d 100644
--- a/App/wisag_check_Att/wisag_check_Att.vbproj
+++ b/App/wisag_check_Att/wisag_check_Att.vbproj
@@ -71,6 +71,9 @@
P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Email .NET\Bin\Independentsoft.Email.dll
+
+ P:\Visual Studio Projekte\Bibliotheken\Limilabs\Mail.dll\Mail.dll
+
..\packages\NLog.5.0.5\lib\net46\NLog.dll
@@ -105,6 +108,7 @@
+
Form
@@ -154,6 +158,12 @@
+
+
+ {9F748DCD-952E-40A0-9DAD-65BF8A39B231}
+ EmailProfiler.Common
+
+