diff --git a/App/CONFIG_APP/CONFIG_APP.vbproj b/App/CONFIG_APP/CONFIG_APP.vbproj
index e2860b1..2737341 100644
--- a/App/CONFIG_APP/CONFIG_APP.vbproj
+++ b/App/CONFIG_APP/CONFIG_APP.vbproj
@@ -99,7 +99,6 @@
-
Form
diff --git a/App/CONFIG_APP/Class1.vb b/App/CONFIG_APP/Class1.vb
deleted file mode 100644
index 875798b..0000000
--- a/App/CONFIG_APP/Class1.vb
+++ /dev/null
@@ -1,3 +0,0 @@
-Public Class Class1
-
-End Class
diff --git a/App/DigitalData.EMLProfiler/ClassCurrent.vb b/App/DigitalData.EMLProfiler/ClassCurrent.vb
index f4fc5d6..ffc62ed 100644
--- a/App/DigitalData.EMLProfiler/ClassCurrent.vb
+++ b/App/DigitalData.EMLProfiler/ClassCurrent.vb
@@ -6,72 +6,68 @@ Imports MailBox = Limilabs.Mail.Headers.MailBox
Imports Limilabs.Client.IMAP
Public Class ClassCurrent
- Public Shared WM_CON_STRING As String
- Public Shared WM_DRIVE As String
- Public Shared TIMER_INTERVALL As Integer = 5
+ Public Shared Property WM_CON_STRING As String
+ Public Shared Property WM_DRIVE As String
+ Public Shared Property TIMER_INTERVALL As Integer = 5
- Public Shared LOG_INITIALIZED As Boolean = False
- Public Shared CURRENT_FILEIN_WD As String
- Public Shared CURRENT_IMPORT_ID As Integer
+ Public Shared Property CURRENT_EMAIL_GUID As Integer
+ Public Shared Property CURRENT_PROFILE_GUID As Integer
+ Public Shared Property DTCONFIG As DataTable
+ Public Shared Property DT_ECM_BASE_CONFIG As DataTable
+ Public Shared Property PATH_TEMP As String
+ Public Shared Property PATH_ERROR As String
- Public Shared CURRENT_EMAIL_GUID As Integer
- Public Shared CURRENT_PROFILE_GUID As Integer
- Public Shared DTCONFIG As DataTable
- Public Shared DT_ECM_BASE_CONFIG As DataTable
- Public Shared PATH_TEMP As String
- Public Shared PATH_ERROR As String
+ Public Shared Property MAIL_BODY_FONT As String = ""
+ Public Shared Property MAIL_FROM As String = ""
+ Public Shared Property MAIL_SERVER As String = ""
+ Public Shared Property MAIL_USER As String = ""
+ Public Shared Property MAIL_USER_PW As String = ""
+ Public Shared Property MAIL_PORT As Integer = 995
+ Public Shared Property MAIL_INBOX_NAME As String = "Inbox"
+ Public Shared Property MAIL_ARCHIVE_FOLDER As String = ""
+ Public Shared Property MAIL_AUTHTYPE As String
+ Public Shared Property DT_POLL_PROCESS As DataTable
+ Public Shared Property DT_STEPS As DataTable
+ Public Shared Property DT_INDEXING_STEPS As DataTable
- Public Shared MAIL_BODY_FONT As String = ""
- Public Shared MAIL_FROM As String = ""
- Public Shared MAIL_SERVER As String = ""
- Public Shared MAIL_USER As String = ""
- Public Shared MAIL_USER_PW As String = ""
- Public Shared MAIL_PORT As Integer = 995
- Public Shared MAIL_INBOX_NAME As String = "Inbox"
- Public Shared MAIL_ARCHIVE_FOLDER As String = ""
- Public Shared MAIL_AUTHTYPE As String
- Public Shared DT_POLL_PROCESS As DataTable
- Public Shared DT_STEPS As DataTable
- Public Shared DT_INDEXING_STEPS As DataTable
+ ' Public Shared Property oCURRENT_WORKMAIL_LIST As New ArrayList()
+ Public Shared Property CURRENT_WORKMAIL_UID_LIST As New List(Of Long)
- ' Public Shared oCURRENT_WORKMAIL_LIST As New ArrayList()
- Public Shared CURRENT_WORKMAIL_UID_LIST As New List(Of Long)
+ Public Shared Property CURRENT_MAIL_MESSAGE As IMail
+ Public Shared Property CURRENT_TEMP_MAIL_PATH As String
+ Public Shared Property CURRENT_MAIL_BODY_ALL As String
+ Public Shared Property CURRENT_MAIL_BODY_ANSWER1 As String = ""
+ Public Shared Property CURRENT_MAIL_BODY_Substr2 As String = ""
+ Public Shared Property CURRENT_MAIL_SUBJECT As String = ""
+ Public Shared Property CURRENT_MAIL_FROM As String = ""
+ Public Shared Property CURRENT_MAIL_MESSAGE_ID As String = ""
+ Public Shared Property CURRENT_MAIL_UID As Long
+ Public Shared Property CURRENT_MAIL_PROCESS_NAME As String
+ Public Shared Property CURRENT_ImapObject As Imap
- Public Shared CURRENT_MAIL_MESSAGE As IMail
- Public Shared CURRENT_TEMP_MAIL_PATH As String
- Public Shared CURRENT_MAIL_BODY_ALL As String
- Public Shared CURRENT_MAIL_BODY_ANSWER1 As String = ""
- Public Shared CURRENT_MAIL_BODY_Substr2 As String = ""
- Public Shared CURRENT_MAIL_SUBJECT As String = ""
- Public Shared CURRENT_MAIL_FROM As String = ""
- Public Shared CURRENT_MAIL_MESSAGE_ID As String = ""
- Public Shared CURRENT_MAIL_UID As Long
- Public Shared CURRENT_MAIL_PROCESS_NAME As String
- Public Shared CURRENT_ImapObject As Imap
+ Public Shared Property DeleteMail As Boolean = False
+ Public Shared Property CURRENT_POLL_TYPE As String
- Public Shared DeleteMail As Boolean = False
- Public Shared CURRENT_POLL_TYPE As String
+ Public Shared Property POLL_STEP_GUID As Integer
+ Public Shared Property POLL_STEP_PROCESS_ID As Integer
+ Public Shared Property POLL_KEYWORDS As String
+ Public Shared Property KEYWORDS_SPLIT As String()
- Public Shared POLL_STEP_GUID As Integer
- Public Shared POLL_STEP_PROCESS_ID As Integer
- Public Shared POLL_KEYWORDS As String
- Public Shared KEYWORDS_SPLIT As String()
+ Public Shared Property WM_REFERENCE_INDEX As String
+ Public Shared Property WM_VECTOR_LOG As String
+ Public Shared Property WM_OBJEKTTYPE As String
+ Public Shared Property WM_IDX_BODY_TEXT As String
+ Public Shared Property WM_IDX_BODY_SUBSTR_LENGTH As String
- Public Shared WM_REFERENCE_INDEX As String
- Public Shared WM_VECTOR_LOG As String
- Public Shared WM_OBJEKTTYPE As String
- Public Shared WM_IDX_BODY_TEXT As String
- Public Shared WM_IDX_BODY_SUBSTR_LENGTH As String
+ Public Shared Property CURRENT_WM_DOC As WMObject
+ Public Shared Property CURRENT_DOC_ID As Integer
+ Public Shared Property CURRENT_DOC_PATH As String
+ Public Shared Property MessageError As Boolean = False
- Public Shared CURRENT_WM_DOC As WMObject
- Public Shared CURRENT_DOC_ID As Integer
- Public Shared CURRENT_DOC_PATH As String
- Public Shared MessageError As Boolean = False
+ Public Shared Property TEMP_FILES As List(Of String) = New List(Of String)
+ Public Shared Property TEMP_HTML_RESULTS As List(Of String) = New List(Of String)
- Public Shared TEMP_FILES As List(Of String) = New List(Of String)
- Public Shared TEMP_HTML_RESULTS As List(Of String) = New List(Of String)
-
- Public Shared CURRENT_DEBUG_LOCAL_EMAIL As String
+ Public Shared Property CURRENT_DEBUG_LOCAL_EMAIL As String
End Class
diff --git a/App/DigitalData.EMLProfiler/DigitalData.EMLProfiler.vbproj b/App/DigitalData.EMLProfiler/DigitalData.EMLProfiler.vbproj
index 3f430d7..5475f1c 100644
--- a/App/DigitalData.EMLProfiler/DigitalData.EMLProfiler.vbproj
+++ b/App/DigitalData.EMLProfiler/DigitalData.EMLProfiler.vbproj
@@ -46,6 +46,9 @@
..\packages\AE.Net.Mail.1.7.10.0\lib\net45\AE.Net.Mail.dll
+
+ ..\..\..\DDMonorepo\Modules.Base\Base\bin\Debug\DigitalData.Modules.Base.dll
+
False
..\..\..\DDMonorepo\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll
@@ -53,6 +56,10 @@
..\..\..\DDMonorepo\Modules.Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll
+
+ False
+ ..\..\..\DDMonorepo\Modules.Language\bin\Debug\DigitalData.Modules.Language.dll
+
..\..\..\DDMonorepo\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll
@@ -113,6 +120,7 @@
+
diff --git a/App/DigitalData.EMLProfiler/MailContainer.vb b/App/DigitalData.EMLProfiler/MailContainer.vb
new file mode 100644
index 0000000..d726928
--- /dev/null
+++ b/App/DigitalData.EMLProfiler/MailContainer.vb
@@ -0,0 +1,52 @@
+Imports Limilabs.Mail
+Imports DigitalData.Modules.Language
+
+Public Class MailContainer
+ Private ReadOnly Uid As String
+ Private ReadOnly FilteredMessageId
+
+ Public ReadOnly Property Mail As IMail
+
+ Public ReadOnly Property Subject As String
+ Get
+ Return Mail.Subject
+ End Get
+ End Property
+
+ Public ReadOnly Property MessageId As String
+ Get
+ Return Mail.MessageID
+ End Get
+ End Property
+
+ Public ReadOnly Property MessageIdPathSafe As String
+ Get
+ Return FilteredMessageId
+ End Get
+ End Property
+
+ Public Property BodyComplete As String
+ Public Property BodySubstring1 As String
+ Public Property BodySubstring2 As String
+
+
+
+ Public Sub New(pMail As IMail, pUid As String)
+ Mail = pMail
+ Uid = pUid
+ FilteredMessageId = ProcessMessageId(pMail.MessageID)
+ End Sub
+
+ Private Function ProcessMessageId(pOriginalMessageId As String) As String
+ If pOriginalMessageId Is Nothing Then
+ Return Guid.NewGuid.ToString
+ End If
+
+ If TypeOf pOriginalMessageId Is String AndAlso pOriginalMessageId.Length = 0 Then
+ Return Guid.NewGuid.ToString
+ End If
+
+ Return Utils.RemoveInvalidCharacters(pOriginalMessageId)
+ End Function
+
+End Class
diff --git a/App/DigitalData.EMLProfiler/clsWorkEmail.vb b/App/DigitalData.EMLProfiler/clsWorkEmail.vb
index 7c6bdc2..55608d5 100644
--- a/App/DigitalData.EMLProfiler/clsWorkEmail.vb
+++ b/App/DigitalData.EMLProfiler/clsWorkEmail.vb
@@ -12,6 +12,8 @@ Imports MailBox = Limilabs.Mail.Headers.MailBox
'Imports DigitalData.Modules.Messaging
Public Class clsWorkEmail
+ Private Const FILENAME_MAX_LENGTH = 100
+
Private Shared Logger As Logger
Private MyLogger As LogConfig
Private _DB_MSSQL As clsDatabase
@@ -54,6 +56,9 @@ Public Class clsWorkEmail
CURRENT_MAIL_FROM = m.Address
Next
+ 'TODO: Move all of these CURRENT_MAIL vars into a business object of type mail container
+ 'Dim oMail As New MailContainer(MyEmailMessage, poUID)
+
Logger.Debug($"Working on email from: {CURRENT_MAIL_FROM}...Subject: {MyEmailMessage.Subject}")
CURRENT_MAIL_BODY_ALL = ""
CURRENT_MAIL_BODY_ANSWER1 = ""
@@ -327,7 +332,11 @@ Public Class clsWorkEmail
End Try
Next oFileName
Dim oResult As Boolean = False
- Dim oSubjectFilename = CURRENT_MAIL_MESSAGE.Subject & ".eml"
+
+ ' Subject can be FILENAME_MAX_LENGTH chars at most,
+ ' otherwise we run into errors with the path being too long
+ Dim oSubjectFilename = CURRENT_MAIL_MESSAGE.Subject.Substring(0, FILENAME_MAX_LENGTH) & ".eml"
+
Logger.Debug($"oSubjectFilename (beforeclean) is: {oSubjectFilename}")
oSubjectFilename = RemoveIllegalFileNameChars(oSubjectFilename)
Dim oTempFilename = oTempPath & "\" & oSubjectFilename
@@ -375,21 +384,28 @@ Public Class clsWorkEmail
Return False
End Try
End Function
- Private Function COPY2HDD(copy_2_hdd As Boolean, pathOriginal As String, pathemail_errors As String, messageid As Boolean) As Boolean
+ Private Function COPY2HDD(pShouldCopyToDisk As Boolean, pPathOriginal As String, pPathErrors As String, pUseMessageIdAsFilename As Boolean) As Boolean
Try
- If copy_2_hdd = True Then
+ If pShouldCopyToDisk = True Then
Logger.Debug("COPY_2_HDD is ACTIVE!")
- PATH_ERROR = pathemail_errors
- If Directory.Exists(pathOriginal) Then
- Dim oTempFilename = pathOriginal
- If messageid = True Then
- oTempFilename &= "\" & CURRENT_MAIL_MESSAGE_ID & ".eml"
+ PATH_ERROR = pPathErrors
+ If Directory.Exists(pPathOriginal) Then
+ Dim oTempFilename = pPathOriginal
+
+ If pUseMessageIdAsFilename = True Then
+ Dim oFileName = CURRENT_MAIL_MESSAGE_ID & ".eml"
+ oTempFilename = Path.Combine(oTempFilename, oFileName)
+
+ 'oTempFilename &= "\" & CURRENT_MAIL_MESSAGE_ID & ".eml"
Else
- oTempFilename &= "\" & CURRENT_MAIL_MESSAGE.Subject.Replace(" ", "") & ".eml"
+ Dim oFileName = CURRENT_MAIL_MESSAGE.Subject.Replace(" ", "") & ".eml"
+ oTempFilename = Path.Combine(oTempFilename, oFileName)
+
+ 'oTempFilename &= "\" & CURRENT_MAIL_MESSAGE.Subject.Replace(" ", "") & ".eml"
End If
'Dim cleanPath As String = String.Join("", oTempFilename.Split(Path.GetInvalidPathChars()))
- If System.IO.File.Exists(oTempFilename) = False Then
+ If File.Exists(oTempFilename) = False Then
Try
File.Delete(oTempFilename)
Catch ex As Exception
@@ -422,7 +438,6 @@ Public Class clsWorkEmail
End If
Catch ex As Exception
Logger.Error(ex)
- 'clsLogger.Add("Unexpected Error in COPY2HDD: " & ex.Message & "MESSAGE_ID: " & CURRENT_MAIL_MESSAGE.MessageID, True)
Return False
End Try
End Function
@@ -717,17 +732,6 @@ Public Class clsWorkEmail
End Try
End Function
- Private Function RemoveCharacter(ByVal stringToCleanUp)
- Dim characterToRemove As String = ""
- characterToRemove = Chr(34) + "#$%&'()*+,-./\~"
- Dim firstThree As Char() = characterToRemove.Take(16).ToArray()
- For index = 1 To firstThree.Length - 1
- stringToCleanUp = stringToCleanUp.ToString.Replace(firstThree(index), "")
- Next
- Return stringToCleanUp
- End Function
-
-
Private Function INSERT_HISTORY_MSSQL() As Boolean
If MessageError = False Then
Dim ins = $"INSERT INTO TBEMLP_HISTORY (WORK_PROCESS,EMAIL_MSGID,EMAIL_SUBJECT,EMAIL_DATE,EMAIL_BODY,EMAIL_SUBSTRING1,EMAIL_SUBSTRING2,EMAIL_FROM,PROFILE_ID) VALUES " &