shorten subject to 100 chars when writing mail to disk, clean up, wip mail container
This commit is contained in:
parent
9013adbabd
commit
4717f2d737
@ -99,7 +99,6 @@
|
||||
<Import Include="System.Threading.Tasks" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Class1.vb" />
|
||||
<Compile Include="frmMain.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
|
||||
@ -1,3 +0,0 @@
|
||||
Public Class Class1
|
||||
|
||||
End Class
|
||||
@ -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
|
||||
|
||||
@ -46,6 +46,9 @@
|
||||
<Reference Include="AE.Net.Mail, Version=1.7.10.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\AE.Net.Mail.1.7.10.0\lib\net45\AE.Net.Mail.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Base">
|
||||
<HintPath>..\..\..\DDMonorepo\Modules.Base\Base\bin\Debug\DigitalData.Modules.Base.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Database, Version=1.0.0.4, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\DDMonorepo\Modules.Database\bin\Debug\DigitalData.Modules.Database.dll</HintPath>
|
||||
@ -53,6 +56,10 @@
|
||||
<Reference Include="DigitalData.Modules.Filesystem">
|
||||
<HintPath>..\..\..\DDMonorepo\Modules.Filesystem\bin\Debug\DigitalData.Modules.Filesystem.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Language, Version=1.5.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\..\DDMonorepo\Modules.Language\bin\Debug\DigitalData.Modules.Language.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DigitalData.Modules.Logging">
|
||||
<HintPath>..\..\..\DDMonorepo\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll</HintPath>
|
||||
</Reference>
|
||||
@ -113,6 +120,7 @@
|
||||
<Compile Include="clsWindream_Index.vb" />
|
||||
<Compile Include="clsWorkEmail.vb" />
|
||||
<Compile Include="clsWorker.vb" />
|
||||
<Compile Include="MailContainer.vb" />
|
||||
<Compile Include="ModuleCurrent.vb" />
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
|
||||
52
App/DigitalData.EMLProfiler/MailContainer.vb
Normal file
52
App/DigitalData.EMLProfiler/MailContainer.vb
Normal file
@ -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
|
||||
@ -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 " &
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user