diff --git a/App/EmailProfiler.Common/ClassCurrent.vb b/App/EmailProfiler.Common/ClassCurrent.vb index ae909a6..65925df 100644 --- a/App/EmailProfiler.Common/ClassCurrent.vb +++ b/App/EmailProfiler.Common/ClassCurrent.vb @@ -46,10 +46,11 @@ Public Class ClassCurrent Public Shared Property CURRENT_DOC_ID As Integer Public Shared Property CURRENT_DOC_PATH As String Public Shared Property MESSAGE_ERROR As Boolean = False + Public Shared Property IS_LOCAL_TEST As Boolean = False Public Shared Property TEMP_FILES As List(Of String) = New List(Of String) - + Public Shared Property TEMP_WORK_FILES As List(Of String) = New List(Of String) End Class diff --git a/App/EmailProfiler.Common/EmailProfiler.Common.vbproj b/App/EmailProfiler.Common/EmailProfiler.Common.vbproj index 339c489..22446cc 100644 --- a/App/EmailProfiler.Common/EmailProfiler.Common.vbproj +++ b/App/EmailProfiler.Common/EmailProfiler.Common.vbproj @@ -65,6 +65,9 @@ ..\..\..\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll + + D:\ProgramFiles\GdPicture.net 14\Redist\GdPicture.NET (.NET Framework 4.5)\GdPicture.NET.14.dll + P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll False diff --git a/App/EmailProfiler.Common/My Project/AssemblyInfo.vb b/App/EmailProfiler.Common/My Project/AssemblyInfo.vb index dd5ab78..ebfcd75 100644 --- a/App/EmailProfiler.Common/My Project/AssemblyInfo.vb +++ b/App/EmailProfiler.Common/My Project/AssemblyInfo.vb @@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices ' übernehmen, indem Sie "*" eingeben: ' - - + + diff --git a/App/EmailProfiler.Common/UserConfig.xml b/App/EmailProfiler.Common/UserConfig.xml new file mode 100644 index 0000000..b47f608 --- /dev/null +++ b/App/EmailProfiler.Common/UserConfig.xml @@ -0,0 +1,9 @@ + + + true + 2 + EmailProfiler + + false + 1 + \ No newline at end of file diff --git a/App/EmailProfiler.Common/clsWorkEmail.vb b/App/EmailProfiler.Common/clsWorkEmail.vb index 47dd9d2..b1e6a54 100644 --- a/App/EmailProfiler.Common/clsWorkEmail.vb +++ b/App/EmailProfiler.Common/clsWorkEmail.vb @@ -12,6 +12,9 @@ Imports Limilabs.Mail.Headers Imports MailBox = Limilabs.Mail.Headers.MailBox Imports DigitalData.Modules.Patterns Imports System.Data.SqlClient +Imports GdPicture14 +Imports System.Net.WebRequestMethods +Imports Limilabs.Client.IMAP Public Class clsWorkEmail Private Const SUBJECT_MAX_LENGTH = 25 @@ -121,7 +124,7 @@ Public Class clsWorkEmail Dim oSql = $"Select COALESCE(MAX(GUID),0) FROM TBEMLP_HISTORY WHERE EMAIL_MSGID = '{CurrentMail.MessageId}'" Dim oHistoryID = _DB_MSSQL.GetScalarValue(oSql) - If oHistoryID > 0 Then + If oHistoryID > 0 And IS_LOCAL_TEST = False Then _Logger.Info($"Message with subject [{CURRENT_MAIL_SUBJECT}] from [{CURRENT_MAIL_FROM}] has already been worked!") Return True End If @@ -137,7 +140,7 @@ Public Class clsWorkEmail End If Try - Dim oFS As FileStream = File.OpenRead(CurrentTempMailPath) + Dim oFS As FileStream = System.IO.File.OpenRead(CurrentTempMailPath) oTempMailAccessible = True oFS.Close() Catch ex As Exception @@ -200,7 +203,9 @@ Public Class clsWorkEmail End If Else - InsertHistoryEntry(CurrentMail) + If IS_LOCAL_TEST = False Then + InsertHistoryEntry(CurrentMail) + End If End If Return True @@ -553,7 +558,7 @@ Public Class clsWorkEmail End Try If COPY2HDD(pCurrentMail, oRow("COPY_2_HDD"), oRow("PATH_ORIGINAL"), oRow("PATH_EMAIL_ERRORS"), True) = True Then - 'ToDo Konsistenz prüfen + If EXTRACT_ATTACHMENTS(pCurrentMail, oExtractMainPath, oRow("PATH_EMAIL_ERRORS")) = True Then Return True @@ -591,7 +596,7 @@ Public Class clsWorkEmail Dim oFileName As String For Each oFileName In oFileEntries Try - File.Delete(oFileName) + System.IO.File.Delete(oFileName) Catch ex As Exception End Try Next oFileName @@ -613,7 +618,7 @@ Public Class clsWorkEmail Dim oCounter As Integer = 1 Dim oCancel As Boolean - Do While File.Exists(CurrentTempMailPath) = False + Do While System.IO.File.Exists(CurrentTempMailPath) = False _Logger.Debug("Trying to read saved mail.. ({0}/{1})", oCounter, 10) Thread.Sleep(1000) oCounter += 1 @@ -626,7 +631,7 @@ Public Class clsWorkEmail If oCancel = True Then oResult = False Else - If File.Exists(CurrentTempMailPath) Then + If System.IO.File.Exists(CurrentTempMailPath) Then oResult = True End If End If @@ -651,7 +656,7 @@ Public Class clsWorkEmail If Directory.Exists(pDestination) Then Dim oTempFilename = Path.Combine(pDestination, $"{pCurrentMail.MessageId}.eml") - If File.Exists(oTempFilename) = False Then + If System.IO.File.Exists(oTempFilename) = False Then pCurrentMail.Mail.Save(oTempFilename) @@ -664,7 +669,7 @@ Public Class clsWorkEmail Else _Logger.Warn("FileLenth of file [{0}] is 0! File will be deleted.", oTempFilename) Try - File.Delete(oTempFilename) + System.IO.File.Delete(oTempFilename) Catch ex As Exception _Logger.Error(ex) End Try @@ -795,19 +800,20 @@ Public Class clsWorkEmail _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 - + If System.IO.File.Exists(CurrentTempMailPath) Then + Dim oATTFilename = "" For Each oAttachment As MimeData In pCurrentMail.Mail.Attachments - Dim oATTFilename = oAttachment.SafeFileName.ToString.ToLower + oATTFilename = oAttachment.SafeFileName.ToString.ToLower Dim oValidExtensions = New List(Of String) From {"pdf", "xls", "xlsx", "doc", "docx", "ppt", "pptx"} Dim oValidExt = oValidExtensions.Any(Function(ext) oATTFilename.EndsWith(ext)) If oValidExt = False Then - _Logger.Debug("Invalid FileExtension [{0}]", oATTFilename) + _Logger.Info("Invalid FileExtension [{0}]", oATTFilename) Continue For End If @@ -815,7 +821,6 @@ Public Class clsWorkEmail _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 @@ -825,45 +830,104 @@ Public Class clsWorkEmail _Logger.Debug("Final Filename for Attachment: [{0}]", oAttachmentFileName) - oAttachmentFilePath = Path.Combine(pExtractPath, oAttachmentFileName) + oAttachmentFilePath = Path.Combine(pExtractPath, "Temp", oAttachmentFileName) _Logger.Debug("Final Path for Attachment: [{0}]", oAttachmentFilePath) - If File.Exists(oAttachmentFilePath) = False Then - _Logger.Debug(String.Format("Trying to save attachment [{0}]", oAttachmentFilePath)) - Try - oAttachment.Save(oAttachmentFilePath) - 'oAttachment.Save(oAttachmentFileString) - Dim oFileInfo1 As New FileInfo(oAttachmentFilePath) - Dim oFileLenth As Long = oFileInfo1.Length - If oFileLenth > 2 Then - _Logger.Info(String.Format("Attachment saved to [{0}]", oAttachmentFilePath)) - InsertAttachmentHistoryEntry(pCurrentMail, oAttachment.SafeFileName, oAttachmentFileName) - oAttachmentCount += 1 - Else - _Logger.Warn($"##!! oFileLenth for AttachmentObjects is <2 !!##") - Try - File.Delete(oAttachmentFilePath) - Catch ex As Exception - _Logger.Error(ex) - End Try + If System.IO.File.Exists(oAttachmentFilePath) Then + _Logger.Warn("File [{0}] already exists!", oAttachmentFilePath) + System.IO.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 oGdPicturePDF As New GdPicturePDF() + Dim oStatus As GdPictureStatus = oGdPicturePDF.LoadFromFile(oAttachmentFilePath, True) + If oStatus <> GdPictureStatus.OK Then + oPDFConsistent = False + 'ABLEHNUNG da PDF ungültig MESSAGE_ERROR = True + System.IO.File.Delete(oAttachmentFilePath) + Dim oResult = $"PDF CONSISTENCY of File {oATTFilename} IS NOT OK " + 'insert history und exit + InsertHistoryEntryWithStatus(CurrentMail, "REJECTED", oResult) + AddToEmailQueueMSSQL(CurrentMail.MessageId, oResult, "PDF CONSISTENCY NOT OK", _EmailAccountID, + _RejectionTemplateId, ErrorCode.PDFStructureCorrupt, oATTFilename, "") + Exit 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.Debug("Invalid FileExtension [{0}]", oEmbAttName) + 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 + 'ABLEHNUNG da PDF ungültig + MESSAGE_ERROR = True + System.IO.File.Delete(oAttachmentFilePath) + Dim oResult = $"Consistency or PDF-State of embedded file [{oEmbAttName}] IS NOT OK " + 'insert history und exit + InsertHistoryEntryWithStatus(CurrentMail, "REJECTED", oResult) + AddToEmailQueueMSSQL(CurrentMail.MessageId, oResult, "Consistency or PDF-State Embedded file NOT OK", _EmailAccountID, + _RejectionTemplateId, ErrorCode.PDFStructureCorrupt, oATTFilename, "") + Exit For + End If + End If + End If + Next + End If End If - Catch ex As Exception - _Logger.Warn($"Error while saving attachment-name: {ex.Message} - AttachmentName: {oAttachmentFilePath}") - MESSAGE_ERROR = True - End Try - Else - _Logger.Warn("File [{0}] already exists!", oAttachmentFilePath) - oAttachmentCount += 1 - End If + + End If + + Dim oFileLenth As Long = oFileInfo1.Length + If oFileLenth > 2 Then + _Logger.Info(String.Format("Attachment saved to [{0}]", oAttachmentFilePath)) + InsertAttachmentHistoryEntry(pCurrentMail, oAttachment.SafeFileName, oAttachmentFileName) + oAttachmentCount += 1 + Else + _Logger.Warn($"##!! oFileLenth for AttachmentObjects is <2 !!##") + Try + System.IO.File.Delete(oAttachmentFilePath) + Catch ex As Exception + _Logger.Error(ex) + End Try + MESSAGE_ERROR = True + 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") @@ -873,9 +937,13 @@ Public Class clsWorkEmail 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) @@ -883,6 +951,26 @@ Public Class clsWorkEmail Return False End Try End Function + Private Sub WorkTempFiles(pACT As String) + For Each _file In TEMP_WORK_FILES + _Logger.Debug("Working on temp work file: [{0}]", _file) + + If IO.File.Exists(_file) Then + If pACT = "Delete" Then + Try + IO.File.Delete(_file) + Catch ex As Exception + _Logger.Error(ex) + _Logger.Warn("Could not delete the tempworkfile : [{0}]", _file) + End Try + ElseIf pACT = "Move" Then + IO.File.Move(_file, _file.Replace("\Temp", "")) + End If + + End If + Next + TEMP_WORK_FILES.Clear() + End Sub Private Function InsertHistoryEntry(pCurrentMail As MailContainer) As Boolean If MESSAGE_ERROR = False Then diff --git a/App/EmailProfiler.Common/clsWorker.vb b/App/EmailProfiler.Common/clsWorker.vb index aeeda1e..dcf38a3 100644 --- a/App/EmailProfiler.Common/clsWorker.vb +++ b/App/EmailProfiler.Common/clsWorker.vb @@ -67,6 +67,7 @@ Public Class clsWorker TEMP_FILES.Clear() End Sub + Private Function LoadEmailAccounts() As DataTable Return Database.GetDatatable("SELECT * FROM TBDD_EMAIL_ACCOUNT WHERE ACTIVE = 1") End Function @@ -86,7 +87,7 @@ Public Class clsWorker 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.") Exit Sub @@ -197,7 +198,10 @@ Public Class clsWorker If LocalEmail Then Logger.Info("Working with local Mail") Dim oEmail As IMail = New MailBuilder().CreateFromEmlFile(LocalEmlFile) - ClassWorkMail.WorkEmailMessage(oEmail, 123456789, oValidationSql) + + + Dim oUID = String.Concat(Now.Month.ToString, Now.Day, Now.Hour, Now.Minute, Now.Second) + ClassWorkMail.WorkEmailMessage(oEmail, oUID, oValidationSql) 'CURRENT_MAIL_MESSAGE = Nothing Else Try diff --git a/App/EmailProfiler.Form/frmMain.resx b/App/EmailProfiler.Form/frmMain.resx index 0c82f7f..95dc884 100644 --- a/App/EmailProfiler.Form/frmMain.resx +++ b/App/EmailProfiler.Form/frmMain.resx @@ -365,9 +365,6 @@ 17, 95 - - 17, 95 - 1139, 56 @@ -460,70 +457,6 @@ LDIwLDE2LDIweiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs= - - 1021, 95 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAOYCAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLlll - bGxvd3tmaWxsOiNGRkIxMTU7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD - MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh - Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntvcGFjaXR5OjAuMzU7fQoJLnN0M3tv - cGFjaXR5OjAuNjU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRnVubmVsIj4NCiAgICA8cmVjdCB4PSIxMiIg - eT0iMjIiIHdpZHRoPSI2IiBoZWlnaHQ9IjgiIHJ4PSIwIiByeT0iMCIgY2xhc3M9IkJsdWUiIC8+DQog - ICAgPHBvbHlnb24gcG9pbnRzPSIxMiwyMCA0LDEyIDI2LDEyIDE4LDIwICAiIGNsYXNzPSJZZWxsb3ci - IC8+DQogICAgPHBvbHlnb24gcG9pbnRzPSI0LDEwIDAsMiAzMCwyIDI2LDEwICAiIGNsYXNzPSJSZWQi - IC8+DQogIDwvZz4NCjwvc3ZnPgs= - - - - 1175, 95 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGYEAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z - ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD - MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh - Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk - aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp - c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41 - O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7 - ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp - c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJEb2N1bWVudF8xXyI+ - DQogICAgPHBhdGggZD0iTTE1LDIwbDktOWw1LDVsLTksOUwxNSwyMHogTTMxLjcsMTEuOWwtMy42LTMu - NmMtMC40LTAuNC0xLTAuNC0xLjQsMEwyNSwxMGw1LDVsMS43LTEuNyAgIEMzMi4xLDEyLjksMzIuMSwx - Mi4zLDMxLjcsMTEuOXogTTE0LDI2aDVsLTUtNVYyNnoiIGNsYXNzPSJCbHVlIiAvPg0KICAgIDxwYXRo - IGQ9Ik0yNCwyMy44VjI4aC00LjJIMTJINlY0aDE4djQuMmwyLTJWM2MwLTAuNS0wLjUtMS0xLTFINUM0 - LjQsMiw0LDIuNSw0LDN2MjZjMCwwLjUsMC41LDEsMSwxaDIwICAgYzAuNSwwLDEtMC41LDEtMXYtNy4y - TDI0LDIzLjh6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs= - - - - 851, 173 - - - 180, 56 - - - 623, 134 - - - 537, 95 - 537, 95 @@ -594,9 +527,26 @@ 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== - - 17, 134 - + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAOYCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQoJLlll + bGxvd3tmaWxsOiNGRkIxMTU7fQoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5HcmVlbntmaWxsOiMwMzlD + MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntvcGFjaXR5OjAuMzU7fQoJLnN0M3tv + cGFjaXR5OjAuNjU7fQo8L3N0eWxlPg0KICA8ZyBpZD0iRnVubmVsIj4NCiAgICA8cmVjdCB4PSIxMiIg + eT0iMjIiIHdpZHRoPSI2IiBoZWlnaHQ9IjgiIHJ4PSIwIiByeT0iMCIgY2xhc3M9IkJsdWUiIC8+DQog + ICAgPHBvbHlnb24gcG9pbnRzPSIxMiwyMCA0LDEyIDI2LDEyIDE4LDIwICAiIGNsYXNzPSJZZWxsb3ci + IC8+DQogICAgPHBvbHlnb24gcG9pbnRzPSI0LDEwIDAsMiAzMCwyIDI2LDEwICAiIGNsYXNzPSJSZWQi + IC8+DQogIDwvZz4NCjwvc3ZnPgs= + + 17, 134 @@ -665,6 +615,32 @@ kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAGYEAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMTE3N0Q3O30KCS5Z + ZWxsb3d7ZmlsbDojRkZCMTE1O30KCS5SZWR7ZmlsbDojRDExQzFDO30KCS5HcmVlbntmaWxsOiMwMzlD + MjM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQoJLnN0MXtvcGFjaXR5OjAuNzU7fQoJLnN0MntkaXNwbGF5Om5vbmU7fQoJLnN0M3tk + aXNwbGF5OmlubGluZTtmaWxsOiNGRkIxMTU7fQoJLnN0NHtkaXNwbGF5OmlubGluZTt9Cgkuc3Q1e2Rp + c3BsYXk6aW5saW5lO29wYWNpdHk6MC43NTt9Cgkuc3Q2e2Rpc3BsYXk6aW5saW5lO29wYWNpdHk6MC41 + O30KCS5zdDd7ZGlzcGxheTppbmxpbmU7ZmlsbDojMDM5QzIzO30KCS5zdDh7ZGlzcGxheTppbmxpbmU7 + ZmlsbDojRDExQzFDO30KCS5zdDl7ZGlzcGxheTppbmxpbmU7ZmlsbDojMTE3N0Q3O30KCS5zdDEwe2Rp + c3BsYXk6aW5saW5lO2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+DQogIDxnIGlkPSJEb2N1bWVudF8xXyI+ + DQogICAgPHBhdGggZD0iTTE1LDIwbDktOWw1LDVsLTksOUwxNSwyMHogTTMxLjcsMTEuOWwtMy42LTMu + NmMtMC40LTAuNC0xLTAuNC0xLjQsMEwyNSwxMGw1LDVsMS43LTEuNyAgIEMzMi4xLDEyLjksMzIuMSwx + Mi4zLDMxLjcsMTEuOXogTTE0LDI2aDVsLTUtNVYyNnoiIGNsYXNzPSJCbHVlIiAvPg0KICAgIDxwYXRo + IGQ9Ik0yNCwyMy44VjI4aC00LjJIMTJINlY0aDE4djQuMmwyLTJWM2MwLTAuNS0wLjUtMS0xLTFINUM0 + LjQsMiw0LDIuNSw0LDN2MjZjMCwwLjUsMC41LDEsMSwxaDIwICAgYzAuNSwwLDEtMC41LDEtMXYtNy4y + TDI0LDIzLjh6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs= @@ -740,9 +716,6 @@ 239, 173 - - 239, 173 - 1297, 134 diff --git a/App/EmailProfiler.Service/Config.vb b/App/EmailProfiler.Service/Config.vb index 8057b97..0bfcce9 100644 --- a/App/EmailProfiler.Service/Config.vb +++ b/App/EmailProfiler.Service/Config.vb @@ -1,9 +1,13 @@ -Public Class Config +Imports DigitalData.Modules.Config.ConfigAttributes + +Public Class Config + + Public Property ConnectionString As String = "" + Public Property Debug As Boolean = False Public Property EmailAccountId As Integer = 0 Public Property EmailTitlePrefix As String = "EmailProfiler" Public Property EmailSenderLimitation As String = "" - Public Property ConnectionString As String = "" Public Property UseWindream As Boolean = False ''' @@ -12,4 +16,6 @@ ''' Public Property RejectionTemplateId As Integer = 0 + Public Property EmailTestReceiver As String = "" + Public Property EmailTestHTML As String = "" End Class