diff --git a/Global_Indexer/frmIndex.vb b/Global_Indexer/frmIndex.vb index cfb74d6..7b1e5f6 100644 --- a/Global_Indexer/frmIndex.vb +++ b/Global_Indexer/frmIndex.vb @@ -835,7 +835,7 @@ Public Class frmIndex End If Next End If - If DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Or DropType = "|MSGONLY|" Or CURRENT_NEWFILENAME.EndsWith(".msg") Then + If DropType = "|OUTLOOK_MESSAGE|" Or DropType = "|FW_MSGONLY|" Or DropType = "|MSGONLY|" Or CURRENT_NEWFILENAME.ToUpper.EndsWith(".msg") Or CURRENT_NEWFILENAME.ToUpper.EndsWith(".eml") Then indexierung_erfolgreich = SetEmailIndicies(pIndexAttachment:=False) If indexierung_erfolgreich = False Then MsgBox("Error in SetEmailIndices - See log", MsgBoxStyle.Critical) @@ -865,12 +865,16 @@ Public Class frmIndex Return False End Try + End Function + + Private Function SetAttachmentIndicies() As Boolean + + End Function Private Function SetEmailIndicies(pIndexAttachment As Boolean) As Boolean Try - Dim oMsgFilePath As String = Path.Combine("\\windream\objects", CURRENT_NEWFILENAME) - Dim oMail As IMail = EMAIL.Load_Email(oMsgFilePath) + Dim oIndexNames As Dictionary(Of String, Object) Dim oSQL As String = $"SELECT * FROM TBGI_OBJECTTYPE_EMAIL_INDEX WHERE OBJECTTYPE = '{CURR_DOKART_OBJECTTYPE}'" Dim oTable As DataTable = ClassDatabase.Return_Datatable(oSQL) @@ -890,25 +894,42 @@ Public Class frmIndex Return False End If - Dim oMessageId As String = oMail.MessageID - Dim oMessageFrom As String = EMAIL.Get_MessageSender(oMail) - Dim oMessageTo As String = EMAIL.Get_MessageReceiver(oMail) - Dim oSubject As String = oMail.Subject - Dim oDateIn As Date = oMail.Date - Dim oRow As DataRow = oTable.Rows.Item(0) - Dim oIndexNames As New Dictionary(Of String, Object) From { - {"IDX_EMAIL_ID", oMessageId}, - {"IDX_EMAIL_FROM", oMessageFrom}, - {"IDX_EMAIL_TO", oMessageTo}, - {"IDX_EMAIL_SUBJECT", oSubject}, - {"IDX_EMAIL_DATE_IN", oDateIn} - } - If pIndexAttachment = True Then - oIndexNames.Add("IDX_CHECK_ATTACHMENT", True) + ' If file is an email files (eml,msg) parse it to extract email data and save for later + ' If file is an attachment, rely on the previously extracted value + + If pIndexAttachment = False Then + Dim oMsgFilePath As String = Path.Combine("\\windream\objects", CURRENT_NEWFILENAME) + Dim oMail As IMail = EMAIL.Load_Email(oMsgFilePath) + + Dim oMessageId As String = oMail.MessageID + Dim oMessageFrom As String = EMAIL.Get_MessageSender(oMail) + Dim oMessageTo As String = EMAIL.Get_MessageReceiver(oMail) + Dim oSubject As String = oMail.Subject + Dim oDateIn As Date = oMail.Date + + CURRENT_MESSAGEID = oMessageFrom + CURRENT_MESSAGEDATE = oDateIn + CURRENT_MESSAGESUBJECT = oSubject + + oIndexNames = New Dictionary(Of String, Object) From { + {"IDX_EMAIL_ID", oMessageId}, + {"IDX_EMAIL_FROM", oMessageFrom}, + {"IDX_EMAIL_TO", oMessageTo}, + {"IDX_EMAIL_SUBJECT", oSubject}, + {"IDX_EMAIL_DATE_IN", oDateIn} + } + Else + oIndexNames = New Dictionary(Of String, Object) From { + {"IDX_EMAIL_ID", CURRENT_MESSAGEID}, + {"IDX_EMAIL_SUBJECT", CURRENT_MESSAGEDATE}, + {"IDX_EMAIL_DATE_IN", CURRENT_MESSAGESUBJECT}, + {"IDX_CHECK_ATTACHMENT", True} + } End If + For Each oIndex In oIndexNames Try If oIndex.Value Is Nothing Then @@ -924,8 +945,6 @@ Public Class frmIndex End If Dim oIndexingSuccessful = WriteIndex2File(oRow.Item(oIndex.Key), oIndex.Value) - 'Die aktuelle Message-ID zwischenspeichern - CURRENT_MESSAGEID = oMessageId If oIndexingSuccessful = False Then MsgBox($"Error while Indexing Email at Index [{oIndex.Key}]", MsgBoxStyle.Critical)