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