diff --git a/App/EmailProfiler.Common/ClassCurrent.vb b/App/EmailProfiler.Common/ClassCurrent.vb index 4e716f7..a15e9c7 100644 --- a/App/EmailProfiler.Common/ClassCurrent.vb +++ b/App/EmailProfiler.Common/ClassCurrent.vb @@ -13,14 +13,6 @@ Public Class ClassCurrent Public Shared Property DTCONFIG As DataTable Public Shared Property DT_ECM_BASE_CONFIG As DataTable - 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 @@ -34,10 +26,8 @@ Public Class ClassCurrent Public Shared Property CURRENT_DRIVE_ISFULL As Boolean = False - ' Public Shared Property oCURRENT_WORKMAIL_LIST As New ArrayList() Public Shared Property CURRENT_WORKMAIL_UID_LIST As New List(Of Long) - Public Shared Property CURRENT_MAIL_MESSAGE As IMail Public Shared Property CURRENT_ImapObject As Imap Public Shared Property CURRENT_MAIL_UID As Long diff --git a/App/EmailProfiler.Common/MailContainer.vb b/App/EmailProfiler.Common/MailContainer.vb index ea2f1d8..288cd70 100644 --- a/App/EmailProfiler.Common/MailContainer.vb +++ b/App/EmailProfiler.Common/MailContainer.vb @@ -42,23 +42,14 @@ Public Class MailContainer SenderDomain = GetSenderDomain(pMail) End Sub - Private Function GetSenderAddress(pMail As IMail) Dim oMailBox = pMail.From.FirstOrDefault() - If oMailBox Is Nothing Then - Return "InvalidSenderAddress" - Else - Return oMailBox.Address - End If + Return oMailBox?.Address End Function Private Function GetSenderDomain(pMail As IMail) Dim oMailBox = pMail.From.FirstOrDefault() - If oMailBox Is Nothing Then - Return "InvalidSenderAddress" - Else - Return oMailBox.DomainPart - End If + Return oMailBox.DomainPart End Function End Class diff --git a/App/EmailProfiler.Common/clsWorkEmail.vb b/App/EmailProfiler.Common/clsWorkEmail.vb index e4a761d..29e5915 100644 --- a/App/EmailProfiler.Common/clsWorkEmail.vb +++ b/App/EmailProfiler.Common/clsWorkEmail.vb @@ -17,13 +17,15 @@ Public Class clsWorkEmail Private CurrentMail As MailContainer = Nothing - Private CURRENT_TEMP_MAIL_PATH As String + Private CurrentTempMailPath As String + Private CURRENT_MAIL_BODY_ALL As String Private CURRENT_MAIL_BODY_ANSWER1 As String = "" Private CURRENT_MAIL_BODY_Substr2 As String = "" Private CURRENT_MAIL_SUBJECT As String = "" Private CURRENT_MAIL_FROM As String = "" + ''' ''' Primary Mail Identifier. ''' Is a hash of the MessageId, used to be the MessageId itself. @@ -85,7 +87,7 @@ Public Class clsWorkEmail CURRENT_MAIL_BODY_ALL = "" CURRENT_MAIL_BODY_ANSWER1 = "" CURRENT_MAIL_BODY_Substr2 = "" - CURRENT_MAIL_MESSAGE = pMailMessage + 'CURRENT_MAIL_MESSAGE = pMailMessage CURRENT_MAIL_SUBJECT = pMailMessage.Subject.ToUpper.EscapeForSQL() CURRENT_MAIL_UID = poUID @@ -136,7 +138,7 @@ Public Class clsWorkEmail Dim oTempMailAccessible As Boolean = False If oTempMailExists = True Then Try - Dim oFS As FileStream = File.OpenRead(CURRENT_TEMP_MAIL_PATH) + Dim oFS As FileStream = File.OpenRead(CurrentTempMailPath) oTempMailAccessible = True oFS.Close() Catch ex As Exception @@ -151,7 +153,7 @@ Public Class clsWorkEmail Else _Logger.Debug("CommonEmail-Process-Sniffer") If COMMON_EMAIL_IN(CurrentMail) = True Then - InsertHistoryEntry() + InsertHistoryEntry(CurrentMail) If CURRENT_ATTMT_COUNT = 0 Then _Logger.Info("### Mail contained no Attachments!! ###") Dim oBody = EmailStrings.EMAIL_NO_FERDS @@ -239,8 +241,8 @@ Public Class clsWorkEmail Private Function PROCESS_MANAGER_IN(pCurrentMail As MailContainer) As Boolean Try - _Logger.Info(String.Format("PM-related message found....[{0}]", CURRENT_MAIL_MESSAGE.Subject)) - _Logger.Debug(String.Format("PM-related message found....[{0}]", CURRENT_MAIL_MESSAGE.Subject)) + _Logger.Info(String.Format("PM-related message found....[{0}]", pCurrentMail.Mail.Subject)) + _Logger.Debug(String.Format("PM-related message found....[{0}]", pCurrentMail.Mail.Subject)) Dim oExpression = "PROCESS_NAME = 'ProcessManager'" 'Filter the rows using Select() method of DataTable Dim TEMP_PROCESS_PROFILE_DT As DataTable = DT_POLL_PROCESS @@ -260,8 +262,8 @@ Public Class clsWorkEmail WM_IDX_BODY_SUBSTR_LENGTH = row("WM_IDX_BODY_SUBSTR_LENGTH") DeleteMail = row("DELETE_MAIL") - If COPY2HDD(row("COPY_2_HDD"), row("PATH_ORIGINAL"), row("PATH_EMAIL_ERRORS"), False) = True Then - EXTRACT_BODY() + If COPY2HDD(pCurrentMail, row("COPY_2_HDD"), row("PATH_ORIGINAL"), row("PATH_EMAIL_ERRORS"), False) = True Then + EXTRACT_BODY(pCurrentMail) End If @@ -330,8 +332,8 @@ Public Class clsWorkEmail Function COMMON_EMAIL_IN(pCurrentMail As MailContainer) As Boolean Try - _Logger.Info(String.Format("COMMON_EMAIL_IN...Subject [{0}]", CURRENT_MAIL_MESSAGE.Subject)) - _Logger.Debug(String.Format("COMMON_EMAIL_IN...Subject [{0}]", CURRENT_MAIL_MESSAGE.Subject)) + _Logger.Info(String.Format("COMMON_EMAIL_IN...Subject [{0}]", pCurrentMail.Mail.Subject)) + _Logger.Debug(String.Format("COMMON_EMAIL_IN...Subject [{0}]", pCurrentMail.Mail.Subject)) Dim oExpression = "PROCESS_NAME = 'Attachment Sniffer' or PROCESS_NAME = 'ZugFeRD-Parser'" 'Filter the rows using Select() method of DataTable @@ -391,7 +393,7 @@ Public Class clsWorkEmail _Logger.Warn($"Unexpected Error in Checking RemainingTotalFreeSpace for Storage [{oExtractMainPath}]: {ex.Message}") End Try - If COPY2HDD(oRow("COPY_2_HDD"), oRow("PATH_ORIGINAL"), oRow("PATH_EMAIL_ERRORS"), True) = True Then + If COPY2HDD(pCurrentMail, oRow("COPY_2_HDD"), oRow("PATH_ORIGINAL"), oRow("PATH_EMAIL_ERRORS"), True) = True Then If EXTRACT_ATTACHMENTS(pCurrentMail, oExtractMainPath, oRow("PATH_EMAIL_ERRORS")) = True Then Return True @@ -439,12 +441,12 @@ Public Class clsWorkEmail 'Dim oSubjectFilename = CURRENT_MAIL_MESSAGE.Subject.Truncate(SUBJECT_MAX_LENGTH) & ".eml" Dim oSubjectFilename = CURRENT_MAIL_MESSAGE_ID & ".eml" - _Logger.Debug($"oSubjectFilename (beforeclean) is: {oSubjectFilename}") + _Logger.Debug($"Filename (beforeclean) is: {oSubjectFilename}") oSubjectFilename = RemoveIllegalFileNameChars(oSubjectFilename) - oTempFilename = oTempPath & "\" & oSubjectFilename - _Logger.Debug($"oTempFilename (afterclean) is: {oTempFilename}") + oTempFilename = Path.Combine(oTempPath, oSubjectFilename) + _Logger.Debug($"Filepath (afterclean) is: {oTempFilename}") + - Dim oCounter As Integer = 1 'If File.Exists(oTempFilename) = True Then ' Do While File.Exists(oTempFilename) ' oCounter += 1 @@ -455,12 +457,15 @@ Public Class clsWorkEmail ' oTempFilename = oTempFilename.Replace("\", "") ' Loop 'End If - CURRENT_MAIL_MESSAGE.Save(oTempFilename) - CURRENT_TEMP_MAIL_PATH = oTempFilename - _Logger.Debug($"Email saved to Temppath {CURRENT_TEMP_MAIL_PATH}") - oCounter = 0 + pCurrentMail.Mail.Save(oTempFilename) + CurrentTempMailPath = oTempFilename + + _Logger.Debug($"Email saved to Temppath {CurrentTempMailPath}") + + Dim oCounter As Integer = 1 Dim oCancel As Boolean - Do While File.Exists(CURRENT_TEMP_MAIL_PATH) = False + Do While File.Exists(CurrentTempMailPath) = False + _Logger.Debug("Trying to read saved mail.. ({0}/{1})", oCounter, 10) Thread.Sleep(1000) oCounter += 1 If oCounter > 10 Then @@ -472,7 +477,7 @@ Public Class clsWorkEmail If oCancel = True Then oResult = False Else - If File.Exists(CURRENT_TEMP_MAIL_PATH) Then + If File.Exists(CurrentTempMailPath) Then oResult = True End If End If @@ -483,13 +488,13 @@ Public Class clsWorkEmail Catch ex As Exception _Logger.Error(ex) _Logger.Info($"Unexpected error in Save2Temp [{oTempFilename}]") - CURRENT_TEMP_MAIL_PATH = Nothing + CurrentTempMailPath = Nothing 'clsLogger.Add("Unexpected Error in COPY2HDD: " & ex.Message & "MESSAGE_ID: " & CURRENT_MAIL_MESSAGE.MessageID, True) Return False End Try End Function - Private Function COPY2HDD(pShouldCopyToDisk As Boolean, pPathOriginal As String, pPathErrors As String, pUseMessageIdAsFilename As Boolean) As Boolean + Private Function COPY2HDD(pCurrentMail As MailContainer, pShouldCopyToDisk As Boolean, pPathOriginal As String, pPathErrors As String, pUseMessageIdAsFilename As Boolean) As Boolean Try If pShouldCopyToDisk = True Then _Logger.Debug("COPY_2_HDD is ACTIVE!") @@ -519,7 +524,7 @@ Public Class clsWorkEmail Return False End Try - CURRENT_MAIL_MESSAGE.Save(oTempFilename) + pCurrentMail.Mail.Save(oTempFilename) Dim oFileInfo As New FileInfo(oTempFilename) Dim oFileLenth As Long = oFileInfo.Length If oFileLenth > 0 Then @@ -536,7 +541,7 @@ Public Class clsWorkEmail End If Else - _Logger.Info("COPY2HDD (" & CURRENT_MAIL_MESSAGE.Subject & ") already existing in [{oTempFilename}]!", False, "RUN_THREAD.COPY_2_HDD") + _Logger.Info("COPY2HDD (" & pCurrentMail.Mail.Subject & ") already existing in [{oTempFilename}]!", False, "RUN_THREAD.COPY_2_HDD") Return True End If Else @@ -551,11 +556,11 @@ Public Class clsWorkEmail Return False End Try End Function - Private Function EXTRACT_BODY() + Private Function EXTRACT_BODY(pCurrentMail As MailContainer) Dim oDTFunctionRegex As DataTable = _DB_MSSQL.GetDatatable("SELECT * FROM TBDD_FUNCTION_REGEX WHERE UPPER(FUNCTION_NAME) IN (UPPER('EMAIL_PROFILER - RemoveHTMLText'),UPPER('EMAIL_PROFILER - RemoveHTMLText1'))") Dim oBodyText As String = "" - If Not IsNothing(CURRENT_MAIL_MESSAGE.Text) Then + If Not IsNothing(pCurrentMail.Mail.Text) Then CURRENT_MAIL_BODY_ALL = oBodyText End If @@ -656,11 +661,12 @@ Public Class clsWorkEmail _Logger.Debug(String.Format("PATH_TEMP[{0}]", pExtractPath)) Dim oAttachmentCount As Integer oAttachmentCount = 0 - Try - If CURRENT_TEMP_MAIL_PATH <> Nothing Then - If File.Exists(CURRENT_TEMP_MAIL_PATH) Then - For Each oAttachment As MimeData In CURRENT_MAIL_MESSAGE.Attachments + Try + If CurrentTempMailPath <> Nothing Then + If File.Exists(CurrentTempMailPath) Then + + For Each oAttachment As MimeData In pCurrentMail.Mail.Attachments Dim oATTFilename = oAttachment.SafeFileName.ToString.ToLower Dim oValidExtensions = New List(Of String) From {"pdf", "xls", "xlsx", "doc", "docx", "ppt", "pptx"} @@ -687,28 +693,32 @@ Public Class clsWorkEmail '28.07.23 'The original filename part will now be slugified to prevent errors 'when opening the file in windream + '05.09.23 + 'The filename will now only contain a hash and a counter to prevent all errors relating to filenames and subject lines being shit - - Dim oFileInfo1 = New FileInfo(oAttachment.SafeFileName) + Dim oFileInfo = New FileInfo(oAttachment.SafeFileName) Dim oFilenameWithoutExtension = Path.GetFileNameWithoutExtension(oAttachment.SafeFileName) - Dim oFilename = StringEx.ConvertTextToSlug(oFilenameWithoutExtension) & oFileInfo1.Extension - Dim oAttachmentFileName = $"{CURRENT_MAIL_MESSAGE_ID}~{pCurrentMail.SenderDomain}~{oFilename}" + Dim oFilename = StringEx.ConvertTextToSlug(oFilenameWithoutExtension) & oFileInfo.Extension + + 'Dim oAttachmentFileName = $"{CURRENT_MAIL_MESSAGE_ID}~{pCurrentMail.SenderDomain}~{oFilename}" + Dim oAttachmentFileName = $"{CURRENT_MAIL_MESSAGE_ID}~Attachment{oAttachmentCount}{oFileInfo.Extension}" + _Logger.Debug("Final Filename for Attachment: [{0}]", oAttachmentFileName) oAttachmentFilePath = Path.Combine(pExtractPath, oAttachmentFileName) _Logger.Debug("Final Path for Attachment: [{0}]", oAttachmentFilePath) - If System.IO.File.Exists(oAttachmentFilePath) = False Then + If File.Exists(oAttachmentFilePath) = False Then _Logger.Debug(String.Format("Trying to save attachment [{0}]", oAttachmentFilePath)) Try oAttachment.Save(oAttachmentFilePath) 'oAttachment.Save(oAttachmentFileString) - Dim oFileInfo As New FileInfo(oAttachmentFilePath) - Dim oFileLenth As Long = oFileInfo.Length + 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)) 'INSERT_HISTORY_FB(CURRENT_MAIL_MESSAGE_ID, oAttachment.SafeFileName) - InsertAttachmentHistoryEntry(CURRENT_MAIL_MESSAGE_ID, oAttachment.SafeFileName) + InsertAttachmentHistoryEntry(pCurrentMail, CURRENT_MAIL_MESSAGE_ID, oAttachment.SafeFileName) oAttachmentCount += 1 Else _Logger.Warn($"##!! oFileLenth for AttachmentObjects is <2 !!##") @@ -737,7 +747,7 @@ Public Class clsWorkEmail End Try Next Else - _Logger.Warn($"If cause 2 EXTRACT_ATTACHMENTS: {CURRENT_TEMP_MAIL_PATH} not existing") + _Logger.Warn($"If cause 2 EXTRACT_ATTACHMENTS: {CurrentTempMailPath} not existing") End If Else _Logger.Warn($"EXTRACT_ATTACHMENTSIf cause 1: CURRENT_TEMP_MAIL_PATH is NOTHING") @@ -755,13 +765,13 @@ Public Class clsWorkEmail End Try End Function - Private Function InsertHistoryEntry() As Boolean + Private Function InsertHistoryEntry(pCurrentMail As MailContainer) 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 " & $"('{CurrentMailProcessName}'," & $"'{CURRENT_MAIL_MESSAGE_ID}'," & $"'{CURRENT_MAIL_SUBJECT}'," & - $"'{CURRENT_MAIL_MESSAGE.Date}'," & + $"'{pCurrentMail.Mail.Date}'," & $"'{CURRENT_MAIL_BODY_ALL}'," & $"'{CURRENT_MAIL_BODY_ANSWER1}'," & $"'{CURRENT_MAIL_BODY_Substr2}'," & @@ -774,7 +784,7 @@ Public Class clsWorkEmail End If End Function - Private Function InsertAttachmentHistoryEntry(pMessageId As String, pFileName As String) As Boolean + Private Function InsertAttachmentHistoryEntry(pCurrentMail As MailContainer, pMessageId As String, pFileName As String) As Boolean If IsNothing(_DB_MSSQL) Then _Logger.Info("INSERT_HISTORY_FB: _DB_MSSQL is nothing ") Return False @@ -786,7 +796,7 @@ Public Class clsWorkEmail $"'{pMessageId}'," & $"'{CURRENT_MAIL_FROM}'," & $"'{CURRENT_MAIL_SUBJECT}'," & - $"'{CURRENT_MAIL_MESSAGE.Date}'," & + $"'{pCurrentMail.Mail.Date}'," & $"'{CURRENT_MAIL_BODY_ALL}'," & $"'{pFileName}')" _DB_MSSQL.ExecuteNonQuery(ins) diff --git a/App/EmailProfiler.Common/clsWorker.vb b/App/EmailProfiler.Common/clsWorker.vb index 220e040..c656059 100644 --- a/App/EmailProfiler.Common/clsWorker.vb +++ b/App/EmailProfiler.Common/clsWorker.vb @@ -41,21 +41,25 @@ Public Class clsWorker CURRENT_DEBUG_LOCAL_EMAIL = pLocalEML End Sub + Private Sub DeleteTempFiles() + For Each _file In TEMP_FILES + Logger.Debug("Trying to delete temp file: [{0}]", _file) + + If IO.File.Exists(_file) Then + Try + IO.File.Delete(_file) + Catch ex As Exception + Logger.Error(ex) + Logger.Warn("Could not delete the tempfile from TEMP_FILES: [{0}]", _file) + End Try + End If + Next + TEMP_FILES.Clear() + End Sub + Public Sub Start_WorkingProfiles(Optional LocalEmail As Boolean = False) Try - For Each _file In TEMP_FILES - Logger.Debug("Trying to delete temp file: [{0}]", _file) - - If IO.File.Exists(_file) Then - Try - IO.File.Delete(_file) - Catch ex As Exception - Logger.Error(ex) - Logger.Warn($"TempFileDelete - Could not delete the tempfile from TEMP_FILES: {ex.Message}") - End Try - End If - Next - TEMP_FILES.Clear() + DeleteTempFiles() If Database.DBInitialized = True Then Logger.Debug("now windream_init... ") @@ -98,10 +102,6 @@ Public Class clsWorker End If CURRENT_EMAIL_GUID = 0 - MAIL_FROM = "" - MAIL_SERVER = "" - MAIL_USER = "" - MAIL_USER_PW = "" CURRENT_POLL_TYPE = oDR_Profile.Item("POLL_TYPE") Logger.Debug(String.Format("Working on profile: ({0}-{1}-{2}) ", oDR_Profile.Item("GUID"), oDR_Profile.Item("PROFILE_NAME"), CURRENT_POLL_TYPE)) @@ -114,31 +114,30 @@ Public Class clsWorker Logger.Debug("Expression Filter email: " & expression) Logger.Debug("DT_TBDD_EMAIL.rowCount: " & DT_TBDD_EMAIL.Rows.Count) 'Filter the rows using Select() method of DataTable - Dim FilteredRows As DataRow() = EMAIL_PROF_TABLE.Select(expression) - If FilteredRows.Length = 1 Then - For Each row As DataRow In FilteredRows - MAIL_FROM = row("EMAIL_FROM") - MAIL_SERVER = row("EMAIL_SMTP") - MAIL_USER = row("EMAIL_USER") - MAIL_USER_PW = row("EMAIL_PW") - MAIL_PORT = row("PORT_IN") - MAIL_INBOX_NAME = "Inbox" - MAIL_ARCHIVE_FOLDER = row("ARCHIVE_FOLDER") - MAIL_AUTHTYPE = row("AUTH_TYPE") - Logger.Debug(String.Format("{0}-{1}", MAIL_FROM, MAIL_SERVER)) + Dim FilteredRows As List(Of DataRow) = EMAIL_PROF_TABLE.Select(expression).ToList() + If FilteredRows.Count = 1 Then + Dim oRow = FilteredRows(0) + Dim MAIL_FROM = oRow("EMAIL_FROM") + Dim MAIL_SERVER = oRow("EMAIL_SMTP") + Dim MAIL_USER = oRow("EMAIL_USER") + Dim MAIL_USER_PW = oRow("EMAIL_PW") + Dim MAIL_PORT = oRow("PORT_IN") + Dim MAIL_INBOX_NAME = "Inbox" + Dim MAIL_ARCHIVE_FOLDER = oRow("ARCHIVE_FOLDER") + Dim MAIL_AUTHTYPE = oRow("AUTH_TYPE") + Logger.Debug(String.Format("{0}-{1}", MAIL_FROM, MAIL_SERVER)) - Dim PWPlain = Encryption.DecryptData(MAIL_USER_PW) - If Not IsNothing(PWPlain) Then - If PWPlain <> "" Then - MAIL_USER_PW = PWPlain - Else - Logger.Warn("PWPlain is string.empty - Could not decrypt passwort") - End If + Dim PWPlain = Encryption.DecryptData(MAIL_USER_PW) + If Not IsNothing(PWPlain) Then + If PWPlain <> "" Then + MAIL_USER_PW = PWPlain Else - Logger.Warn("PWPlain is nothing - Could not decrypt passwort") + Logger.Warn("PWPlain is string.empty - Could not decrypt passwort") End If + Else + Logger.Warn("PWPlain is nothing - Could not decrypt passwort") + End If - Next CURRENT_WORKMAIL_UID_LIST.Clear() If MAIL_SERVER <> "" Then @@ -148,7 +147,8 @@ Public Class clsWorker Else Select Case CURRENT_POLL_TYPE Case "IMAP" - oPollResult = FetchMessages(MAIL_SERVER, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_AUTHTYPE) + ' We are using 'Archive Folder' as an additional field to save the Tenant-ID for O365-OAuth2 + oPollResult = FetchMessages(MAIL_SERVER, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_AUTHTYPE, MAIL_ARCHIVE_FOLDER) Case Else Logger.Error("Poll Type [{0}] is not supported!", CURRENT_POLL_TYPE) @@ -161,7 +161,7 @@ Public Class clsWorker Logger.Info("Working with local Mail") Dim oEmail As IMail = New MailBuilder().CreateFromEmlFile(CURRENT_DEBUG_LOCAL_EMAIL) ClassWorkMail.WorkEmailMessage(oEmail, 123456789) - CURRENT_MAIL_MESSAGE = Nothing + 'CURRENT_MAIL_MESSAGE = Nothing Else Try Logger.Info(String.Format("Pulled: [{0}] E-Mails", CURRENT_WORKMAIL_UID_LIST.Count())) @@ -199,7 +199,7 @@ Public Class clsWorker Logger.Info("### oEmail was nothing ###") End If - CURRENT_MAIL_MESSAGE = Nothing + 'CURRENT_MAIL_MESSAGE = Nothing Next If CURRENT_POLL_TYPE = "IMAP" And CURRENT_WORKMAIL_UID_LIST.Count > 0 Then If Not IsNothing(Fetcher.Client) Then @@ -226,24 +226,7 @@ Public Class clsWorker Logger.Warn("For the Email-Profile ID " & CURRENT_EMAIL_GUID & " no record could be found! Check wether Email-Profile is active!") End If Next - Try - 'Delete all Tempfiles - For Each _file In TEMP_FILES - Logger.Debug("Trying to delete temp file: [{0}]", _file) - - If System.IO.File.Exists(_file) Then - Try - System.IO.File.Delete(_file) - Catch ex As Exception - Logger.Error(ex) - Logger.Warn($"TempFileDelete - Could not delete the tempfile from TEMP_FILES: {ex.Message}") - End Try - End If - Next - - Catch ex As Exception - Logger.Warn($"TempFileDelete(X) - Could not delete the tempfile from TEMP_FILES: {ex.Message}") - End Try + DeleteTempFiles() Else Logger.Info("No active profiles") @@ -257,9 +240,19 @@ Public Class clsWorker End Try End Sub - Public Function FetchMessages(Server As String, Port As Integer, Username As String, Password As String, AuthType As String) As Boolean + Public Function FetchMessages(pServer As String, pPort As Integer, pUsername As String, pPassword As String, pAuthType As String, pArchiveFolder As String) As Boolean Try - Dim oSession = Fetcher.Connect(Server, Port, Username, Password, AuthType) + Dim oSession As MailSession.SessionInfo + + If pAuthType = MailSession.AUTH_OAUTH2 Then + Dim oClientId As String = pServer + Dim oClientSecret As String = pPassword + Dim oTenantId As String = pArchiveFolder + oSession = Fetcher.ConnectToO365(pUsername, oClientId, oTenantId, oClientSecret) + Else + + oSession = Fetcher.Connect(pServer, pPort, pUsername, pPassword, pAuthType) + End If If oSession.Connected = False AndAlso oSession.Error IsNot Nothing Then diff --git a/App/EmailProfiler.Form/frmMain.Designer.vb b/App/EmailProfiler.Form/frmMain.Designer.vb index 6ef4139..36b7a3c 100644 --- a/App/EmailProfiler.Form/frmMain.Designer.vb +++ b/App/EmailProfiler.Form/frmMain.Designer.vb @@ -70,18 +70,18 @@ Partial Class frmMain Dim GUIDLabel4 As System.Windows.Forms.Label Dim NAMELabel As System.Windows.Forms.Label Dim EMAIL_FROMLabel As System.Windows.Forms.Label - Dim EMAIL_SMTPLabel As System.Windows.Forms.Label - Dim EMAIL_USERLabel As System.Windows.Forms.Label Dim PORTLabel As System.Windows.Forms.Label Dim ADDED_WHOLabel4 As System.Windows.Forms.Label Dim ADDED_WHENLabel4 As System.Windows.Forms.Label Dim CHANGED_WHOLabel5 As System.Windows.Forms.Label Dim CHANGED_WHENLabel5 As System.Windows.Forms.Label - Dim Label11 As System.Windows.Forms.Label Dim PORT_INLabel As System.Windows.Forms.Label - Dim ARCHIVE_FOLDERLabel As System.Windows.Forms.Label Dim AUTH_TYPELabel As System.Windows.Forms.Label Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain)) + Me.EMAIL_SMTPLabel = New System.Windows.Forms.Label() + Me.EMAIL_USERLabel = New System.Windows.Forms.Label() + Me.EMAIL_PWLabel = New System.Windows.Forms.Label() + Me.ARCHIVE_FOLDERLabel = New System.Windows.Forms.Label() Me.StatusStrip1 = New System.Windows.Forms.StatusStrip() Me.tslblstatus = New System.Windows.Forms.ToolStripStatusLabel() Me.tslblRefresh = New System.Windows.Forms.ToolStripStatusLabel() @@ -373,16 +373,12 @@ Partial Class frmMain GUIDLabel4 = New System.Windows.Forms.Label() NAMELabel = New System.Windows.Forms.Label() EMAIL_FROMLabel = New System.Windows.Forms.Label() - EMAIL_SMTPLabel = New System.Windows.Forms.Label() - EMAIL_USERLabel = New System.Windows.Forms.Label() PORTLabel = New System.Windows.Forms.Label() ADDED_WHOLabel4 = New System.Windows.Forms.Label() ADDED_WHENLabel4 = New System.Windows.Forms.Label() CHANGED_WHOLabel5 = New System.Windows.Forms.Label() CHANGED_WHENLabel5 = New System.Windows.Forms.Label() - Label11 = New System.Windows.Forms.Label() PORT_INLabel = New System.Windows.Forms.Label() - ARCHIVE_FOLDERLabel = New System.Windows.Forms.Label() AUTH_TYPELabel = New System.Windows.Forms.Label() Me.StatusStrip1.SuspendLayout() Me.TabControl1.SuspendLayout() @@ -859,21 +855,21 @@ Partial Class frmMain ' 'EMAIL_SMTPLabel ' - EMAIL_SMTPLabel.AutoSize = True - EMAIL_SMTPLabel.Location = New System.Drawing.Point(698, 68) - EMAIL_SMTPLabel.Name = "EMAIL_SMTPLabel" - EMAIL_SMTPLabel.Size = New System.Drawing.Size(43, 13) - EMAIL_SMTPLabel.TabIndex = 40 - EMAIL_SMTPLabel.Text = "Server:" + Me.EMAIL_SMTPLabel.AutoSize = True + Me.EMAIL_SMTPLabel.Location = New System.Drawing.Point(698, 68) + Me.EMAIL_SMTPLabel.Name = "EMAIL_SMTPLabel" + Me.EMAIL_SMTPLabel.Size = New System.Drawing.Size(43, 13) + Me.EMAIL_SMTPLabel.TabIndex = 40 + Me.EMAIL_SMTPLabel.Text = "Server:" ' 'EMAIL_USERLabel ' - EMAIL_USERLabel.AutoSize = True - EMAIL_USERLabel.Location = New System.Drawing.Point(370, 108) - EMAIL_USERLabel.Name = "EMAIL_USERLabel" - EMAIL_USERLabel.Size = New System.Drawing.Size(80, 13) - EMAIL_USERLabel.TabIndex = 42 - EMAIL_USERLabel.Text = "Benutzername:" + Me.EMAIL_USERLabel.AutoSize = True + Me.EMAIL_USERLabel.Location = New System.Drawing.Point(370, 108) + Me.EMAIL_USERLabel.Name = "EMAIL_USERLabel" + Me.EMAIL_USERLabel.Size = New System.Drawing.Size(80, 13) + Me.EMAIL_USERLabel.TabIndex = 42 + Me.EMAIL_USERLabel.Text = "Benutzername:" ' 'PORTLabel ' @@ -920,14 +916,14 @@ Partial Class frmMain CHANGED_WHENLabel5.TabIndex = 56 CHANGED_WHENLabel5.Text = "Changed when:" ' - 'Label11 + 'EMAIL_PWLabel ' - Label11.AutoSize = True - Label11.Location = New System.Drawing.Point(735, 108) - Label11.Name = "Label11" - Label11.Size = New System.Drawing.Size(88, 13) - Label11.TabIndex = 64 - Label11.Text = "Neues Passwort:" + Me.EMAIL_PWLabel.AutoSize = True + Me.EMAIL_PWLabel.Location = New System.Drawing.Point(735, 108) + Me.EMAIL_PWLabel.Name = "EMAIL_PWLabel" + Me.EMAIL_PWLabel.Size = New System.Drawing.Size(88, 13) + Me.EMAIL_PWLabel.TabIndex = 64 + Me.EMAIL_PWLabel.Text = "Neues Passwort:" ' 'PORT_INLabel ' @@ -940,12 +936,12 @@ Partial Class frmMain ' 'ARCHIVE_FOLDERLabel ' - ARCHIVE_FOLDERLabel.AutoSize = True - ARCHIVE_FOLDERLabel.Location = New System.Drawing.Point(828, 148) - ARCHIVE_FOLDERLabel.Name = "ARCHIVE_FOLDERLabel" - ARCHIVE_FOLDERLabel.Size = New System.Drawing.Size(84, 13) - ARCHIVE_FOLDERLabel.TabIndex = 76 - ARCHIVE_FOLDERLabel.Text = "Archive Ordner:" + Me.ARCHIVE_FOLDERLabel.AutoSize = True + Me.ARCHIVE_FOLDERLabel.Location = New System.Drawing.Point(828, 148) + Me.ARCHIVE_FOLDERLabel.Name = "ARCHIVE_FOLDERLabel" + Me.ARCHIVE_FOLDERLabel.Size = New System.Drawing.Size(84, 13) + Me.ARCHIVE_FOLDERLabel.TabIndex = 76 + Me.ARCHIVE_FOLDERLabel.Text = "Archive Ordner:" ' 'AUTH_TYPELabel ' @@ -1338,7 +1334,7 @@ Partial Class frmMain Me.XtraTabPage1.ImageOptions.SvgImage = CType(resources.GetObject("XtraTabPage1.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.XtraTabPage1.ImageOptions.SvgImageSize = New System.Drawing.Size(18, 18) Me.XtraTabPage1.Name = "XtraTabPage1" - Me.XtraTabPage1.Size = New System.Drawing.Size(1217, 329) + Me.XtraTabPage1.Size = New System.Drawing.Size(1219, 329) Me.XtraTabPage1.Text = "Zugeordnete Prozesse" ' 'lblDownloadPath @@ -1641,7 +1637,7 @@ Partial Class frmMain Me.BindingNavigator2.MovePreviousItem = Me.ToolStripButton5 Me.BindingNavigator2.Name = "BindingNavigator2" Me.BindingNavigator2.PositionItem = Me.ToolStripTextBox1 - Me.BindingNavigator2.Size = New System.Drawing.Size(972, 25) + Me.BindingNavigator2.Size = New System.Drawing.Size(974, 25) Me.BindingNavigator2.TabIndex = 32 Me.BindingNavigator2.Text = "BindingNavigator2" ' @@ -2120,7 +2116,7 @@ Partial Class frmMain Me.XtraTabPage3.ImageOptions.SvgImage = CType(resources.GetObject("XtraTabPage3.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage) Me.XtraTabPage3.ImageOptions.SvgImageSize = New System.Drawing.Size(18, 18) Me.XtraTabPage3.Name = "XtraTabPage3" - Me.XtraTabPage3.Size = New System.Drawing.Size(1217, 329) + Me.XtraTabPage3.Size = New System.Drawing.Size(1219, 329) Me.XtraTabPage3.Text = "Indexierungs Schritte" ' 'SEQUENCENumericUpDown @@ -2236,7 +2232,7 @@ Partial Class frmMain Me.BindingNavigator4.MovePreviousItem = Me.ToolStripButton22 Me.BindingNavigator4.Name = "BindingNavigator4" Me.BindingNavigator4.PositionItem = Me.ToolStripTextBox3 - Me.BindingNavigator4.Size = New System.Drawing.Size(972, 25) + Me.BindingNavigator4.Size = New System.Drawing.Size(974, 25) Me.BindingNavigator4.TabIndex = 35 Me.BindingNavigator4.Text = "BindingNavigator4" ' @@ -2472,14 +2468,14 @@ Partial Class frmMain Me.tabEmail.Controls.Add(AUTH_TYPELabel) Me.tabEmail.Controls.Add(Me.AUTH_TYPEComboBox) Me.tabEmail.Controls.Add(Me.btntestImap) - Me.tabEmail.Controls.Add(ARCHIVE_FOLDERLabel) + Me.tabEmail.Controls.Add(Me.ARCHIVE_FOLDERLabel) Me.tabEmail.Controls.Add(Me.ARCHIVE_FOLDERTextBox) Me.tabEmail.Controls.Add(PORT_INLabel) Me.tabEmail.Controls.Add(Me.PORT_INTextBox) Me.tabEmail.Controls.Add(Me.txtTestmail) Me.tabEmail.Controls.Add(Me.Label12) Me.tabEmail.Controls.Add(Me.btnsendtestmail) - Me.tabEmail.Controls.Add(Label11) + Me.tabEmail.Controls.Add(Me.EMAIL_PWLabel) Me.tabEmail.Controls.Add(Me.txtnewpasswort) Me.tabEmail.Controls.Add(Me.Button4) Me.tabEmail.Controls.Add(GUIDLabel4) @@ -2488,9 +2484,9 @@ Partial Class frmMain Me.tabEmail.Controls.Add(Me.NAMETextBox) Me.tabEmail.Controls.Add(EMAIL_FROMLabel) Me.tabEmail.Controls.Add(Me.EMAIL_FROMTextBox) - Me.tabEmail.Controls.Add(EMAIL_SMTPLabel) + Me.tabEmail.Controls.Add(Me.EMAIL_SMTPLabel) Me.tabEmail.Controls.Add(Me.EMAIL_SMTPTextBox) - Me.tabEmail.Controls.Add(EMAIL_USERLabel) + Me.tabEmail.Controls.Add(Me.EMAIL_USERLabel) Me.tabEmail.Controls.Add(Me.EMAIL_USERTextBox) Me.tabEmail.Controls.Add(Me.EMAIL_PWTextBox) Me.tabEmail.Controls.Add(PORTLabel) @@ -3653,4 +3649,8 @@ Partial Class frmMain Friend WithEvents Label14 As Label Friend WithEvents txtResultRegEx As TextBox Friend WithEvents txthtmlEmail As TextBox + Friend WithEvents EMAIL_SMTPLabel As Label + Friend WithEvents EMAIL_USERLabel As Label + Friend WithEvents EMAIL_PWLabel As Label + Friend WithEvents ARCHIVE_FOLDERLabel As Label End Class diff --git a/App/EmailProfiler.Form/frmMain.resx b/App/EmailProfiler.Form/frmMain.resx index f9dbb69..a492908 100644 --- a/App/EmailProfiler.Form/frmMain.resx +++ b/App/EmailProfiler.Form/frmMain.resx @@ -258,12 +258,6 @@ False - - False - - - False - False @@ -279,34 +273,107 @@ False - - False - False - - False - False 1271, 17 + + 985, 56 + + + 1162, 173 + + + 623, 134 + + + 851, 173 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + 290, 56 180, 56 + + 180, 56 + 623, 134 985, 56 - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO @@ -399,79 +466,9 @@ LDIwLDE2LDIweiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs= - - 537, 95 - 1021, 95 - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC - pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ - Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ - /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA - zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ - IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E - rkJggg== - - - - 537, 95 - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC - DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC - rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV - i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG - 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG - QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX - bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 - wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 - v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg - UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA - Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu - lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w - 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f - Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ - 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 - n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI - N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f - oAc0QjgAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// - h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B - twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA - kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG - WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 - 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== - - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 @@ -521,15 +518,6 @@ TDI0LDIzLjh6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs= - - 851, 173 - - - 180, 56 - - - 623, 134 - 17, 95 @@ -601,6 +589,79 @@ kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + + + 537, 95 + + + 537, 95 + + + 1021, 95 + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC + pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ + Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ + /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA + zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ + IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E + rkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC + DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC + rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV + i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG + 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG + QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX + bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 + wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 + v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg + UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA + Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu + lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w + 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f + Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ + 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 + n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI + N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f + oAc0QjgAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO + vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// + h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B + twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA + kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG + WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 + 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== @@ -674,76 +735,6 @@ kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== - - - - 1162, 173 - - - 851, 173 - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC - pBtwfjov3ICDPSKkG3B8kiBQc93/Pw+q/u9oFydswKWZPP/PTuX7fxKo8Ui/0P993SJAzeX//94r+r++ - Qeb/qhq5/0srFf/PL1X+P6tIFdPAU0B//nlYD9RUC8SV///cKwHivP9/72b+/3sn+f/f23H//92MAOKQ - /5NyNDENONQrDHbu3/ulQI0FQI3ZQI2pQI0J///digZqDPv/70bQ/3/X/f53peliGrCzXeL/lmap/+vA - zpX/v6RC8f/fWzFAjeH/p+Zp/J+QpfW/O0P3f3uq/v/mREPCYTIb6E+Qc//dCPjfk6FDWAM6APnz3w1/ - IPb735qsT7oB3em6YP+CcH2cEekGtCQZ/G+IN/xfE2v8vzLahHQD6AQYGAAkI9iedfyIaQAAAABJRU5E - rkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC - DrhIDiQl5UTiNG/z2ppafy1S2gX/uDwfY6i1v7Hie3nqeb7fz+/7/FR/Ilwn0G0Exw4fV5GJlXlEZxXC - rIet9bAQvB5Ymgn2sLYAvSZEux7RUQFzE4qQt4bCXAYjPaHvnDoCkLpsRGMB2JqCTGLIijDlwqQ9bEMV - i9OIytR3EMNWcJ/BWH8A6j8/bOGFxwXNxYEvGbMQ9XnQ1/K78KfY3/VXzkMY0qFGG2H4RoLGQshJQNbG - 86CNhdrsX9a/uQZTPhQl4rMY4OLofbl3aX7I8uwPC7y/g1YdjyVJuEvT8e1tfwUYteHUxCCfHChDeHmG - QQvokjlOU+PbWA0x3pZnILVVI3uvQyHsbiLnqnGmRCF1NYD8pDhpRxOH7HQoAKZGkFKjceszQbpSrumX - bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 - wf/ghmu4DciY8vT/wn0fsCqK73n4f+n+///9qy/gNiCh58n/aVveYyiKaL8P1pw56/9/r9ITuA2I7Hr0 - v3f1BxRFoa33wJpb1wFt7/z73yX/AG4DApsf/q+b/w6uKLjl7v9Fe///7wBqzpjz879d3c//9hnbcRvg - UXX/f/60NyiK7Ipv/0+f8/u/f9e3/zqF7/5bJKzHbYB96d3/2ZNfYyjSTzn/36ToxX+VrE//jSOX4TbA - Iu/O/9T+11gVGSSd+C+b9vW/bvA83AYYZt3+H9byEqci/dTL/zV8p+E2QCftxn+/6od4Fal4TMBtgFPu - lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w - 5sxZ//97lZ4gzYDQ1ntgza3rgLZ3/v3vkn+AeAOCW+7+X7T3//8OoOaMOT//29X9/G+fsZ00F9gV3/6f - Puf3f/+ub/91Ct/9t0hYT3oY6Kec/29S9OK/Stan/8aRy0g3AAQMkk78l037+l83eB55BoCAfurl/xq+ - 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 - n73v1//OrX//u5VeJt2QyK5H/6ds+/W/ZOnf/wnT//63yT1LmiGBzQ//t659D9ZsXPLlv3T0tf/GkcuI - N8Sj6v7/krnv4JoVXXpIc4F96d3/gS3PyNMMAhZ5d/7bFFwhTzMIGGbdJl8zCOik3SBf81AEDAwAoH5f - oAc0QjgAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO - vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// - h7c/wG1AxpSn/+ft//0/oesOhiKQ3MJ9H/4HN1zDbUBCz5P/s/f9+t+59e9/t9LLKApBctO2vP/vX30B - twGRXY/+T9n263/J0r//E6b//W+TexauGCTXu/rDf6/SE7gNCGx++L917XuwZuOSL/+lo6/9N45cBtYA - kqub/+6/S/4B3AZ4VN3/XzL3HVyzoksPXDFILn/am//2GdtxG2Bfevd/YMszDM0gAJLLnvz6v0XCetwG - WOTd+W9TcAVDMwiA5FL7X8O9hBUYZt3GqhkEQHJhLS//6wbPw22ATtoNnJIgOb/qh/81fKfhNgAfcMq9 - 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== diff --git a/App/EmailProfiler.Form/frmMain.vb b/App/EmailProfiler.Form/frmMain.vb index 83fb2f9..f0b709c 100644 --- a/App/EmailProfiler.Form/frmMain.vb +++ b/App/EmailProfiler.Form/frmMain.vb @@ -158,6 +158,24 @@ Public Class frmMain _LoadInProgress = False End Sub + + Private Sub Load_Email() + SetEmailTextboxLabels() + End Sub + + Private Sub SetEmailTextboxLabels() + Select Case AUTH_TYPEComboBox.Text + Case "OAUTH2" + EMAIL_SMTPLabel.Text = "Anwendungs-ID (Client):" + EMAIL_PWLabel.Text = "Anwendungs-Geheimnnis:" + ARCHIVE_FOLDERLabel.Text = "Verzeichnis-ID (Mandant):" + Case Else + EMAIL_SMTPLabel.Text = "Server:" + EMAIL_PWLabel.Text = "Neues Passwort:" + ARCHIVE_FOLDERLabel.Text = "Archive Ordner:" + End Select + End Sub + Private Sub ObjektTypenEintragen() Try If IsNothing(_windream) Then @@ -588,9 +606,12 @@ Public Class frmMain Private Sub TabControl1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles TabControl1.SelectedIndexChanged tslblRefresh.BackColor = Color.Transparent tslblRefresh.Text = "" - If TabControl1.SelectedIndex = 2 Then + If TabControl1.SelectedTab.Equals(tabConfig) Then Load_Config() End If + If TabControl1.SelectedTab.Equals(tabEmail) Then + Load_Email() + End If End Sub Sub Active_Color(pCheckBox As CheckBox) @@ -723,10 +744,27 @@ Public Class frmMain If oDT.Rows.Count = 1 Then - Dim PWPlain = _Encryption.DecryptData(oDT.Rows(0).Item("EMAIL_PW")) + Dim oRow As DataRow = oDT.Rows.Item(0) + + Dim PWPlain = _Encryption.DecryptData(oRow.Item("EMAIL_PW")) + Dim oServer = oRow.Item("EMAIL_SMTP") + Dim oPortIn = oRow.Item("PORT_IN") + Dim oUser = oRow.Item("EMAIL_USER") + Dim oAuthType = oRow.Item("AUTH_TYPE") + Dim oArchiveFolder = oRow.Item("ARCHIVE_FOLDER") Dim oFetcher As New MailFetcher(LogConfig) - Dim oSession = oFetcher.Connect(oDT.Rows(0).Item("EMAIL_SMTP"), oDT.Rows(0).Item("PORT_IN"), oDT.Rows(0).Item("EMAIL_USER"), PWPlain, oDT.Rows(0).Item("AUTH_TYPE")) + Dim oSession As MailSession.SessionInfo + + If oAuthType = MailSession.AUTH_OAUTH2 Then + ' These Variables from the DB are reused for the OAuth credentials + Dim oClientId = oServer + Dim oClientSecret = PWPlain + Dim oTenantId = oArchiveFolder + oSession = oFetcher.ConnectToO365(oUser, oClientId, oTenantId, oClientSecret) + Else + oSession = oFetcher.Connect(oServer, oPortIn, oUser, PWPlain, oAuthType) + End If If oSession.Connected = True Then ' Unseen check will be done automatically @@ -858,6 +896,7 @@ Public Class frmMain PORT_INTextBox.Enabled = True End Select End If + SetEmailTextboxLabels() End Sub Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged @@ -888,4 +927,8 @@ Public Class frmMain Dim oCheckBox As CheckBox = sender Active_Color(oCheckBox) End Sub + + Private Sub GridView6_FocusedRowChanged(sender As Object, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs) Handles GridView6.FocusedRowChanged + SetEmailTextboxLabels() + End Sub End Class