From c43903154cf39a9f7ca7894fc1131ababf1a4df2 Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Wed, 6 Sep 2023 12:55:02 +0200 Subject: [PATCH] Add Initial Support for OAuth2 / O365 --- App/EmailProfiler.Common/ClassCurrent.vb | 10 -- App/EmailProfiler.Common/MailContainer.vb | 13 +- App/EmailProfiler.Common/clsWorkEmail.vb | 96 ++++++----- App/EmailProfiler.Common/clsWorker.vb | 117 +++++++------ App/EmailProfiler.Form/frmMain.Designer.vb | 82 +++++----- App/EmailProfiler.Form/frmMain.resx | 181 ++++++++++----------- App/EmailProfiler.Form/frmMain.vb | 49 +++++- 7 files changed, 283 insertions(+), 265 deletions(-) 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 + If CurrentTempMailPath <> Nothing Then + If File.Exists(CurrentTempMailPath) Then - For Each oAttachment As MimeData In CURRENT_MAIL_MESSAGE.Attachments + 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 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 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 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,35 +273,29 @@ False - - False - False - - False - False 1271, 17 - - 290, 56 + + 985, 56 - - 180, 56 + + 1162, 173 623, 134 - - 985, 56 + + 851, 173 - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC @@ -319,7 +307,7 @@ rkJggg== - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC @@ -331,7 +319,7 @@ bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 @@ -342,7 +330,7 @@ lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w @@ -351,7 +339,7 @@ 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 @@ -360,7 +348,7 @@ oAc0QjgAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// @@ -371,41 +359,22 @@ 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== - - 1139, 56 + + 290, 56 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 - LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl - dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAO4DAAAC77u/ - PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi - IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv - MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh - Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg - MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku - WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAz - OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh - Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQo8L3N0eWxl - Pg0KICA8ZyBpZD0iUHJvcGVydGllcyI+DQogICAgPHBhdGggZD0iTTMwLDE4di00bC00LjQtMC43Yy0w - LjItMC44LTAuNS0xLjUtMC45LTIuMWwyLjYtMy42bC0yLjgtMi44bC0zLjYsMi42Yy0wLjctMC40LTEu - NC0wLjctMi4xLTAuOUwxOCwyaC00ICAgbC0wLjcsNC40Yy0wLjgsMC4yLTEuNSwwLjUtMi4xLDAuOUw3 - LjUsNC43TDQuNyw3LjVsMi42LDMuNmMtMC40LDAuNy0wLjcsMS40LTAuOSwyLjFMMiwxNHY0bDQuNCww - LjdjMC4yLDAuOCwwLjUsMS41LDAuOSwyLjEgICBsLTIuNiwzLjZsMi44LDIuOGwzLjYtMi42YzAuNyww - LjQsMS40LDAuNywyLjEsMC45TDE0LDMwaDRsMC43LTQuNGMwLjgtMC4yLDEuNS0wLjUsMi4xLTAuOWwz - LjYsMi42bDIuOC0yLjhsLTIuNi0zLjYgICBjMC40LTAuNywwLjctMS40LDAuOS0yLjFMMzAsMTh6IE0x - NiwyMGMtMi4yLDAtNC0xLjgtNC00YzAtMi4yLDEuOC00LDQtNHM0LDEuOCw0LDRDMjAsMTguMiwxOC4y - LDIwLDE2LDIweiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs= - - - - 537, 95 + + 180, 56 - - 1021, 95 + + 180, 56 - + + 623, 134 + + + 985, 56 + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC @@ -417,10 +386,7 @@ rkJggg== - - 537, 95 - - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC @@ -432,7 +398,7 @@ bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 @@ -443,7 +409,7 @@ lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w @@ -452,7 +418,7 @@ 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 @@ -461,7 +427,7 @@ oAc0QjgAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// @@ -472,6 +438,37 @@ 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== + + 1139, 56 + + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAO4DAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cgku + WWVsbG93e2ZpbGw6I0ZGQjExNTt9CgkuQmx1ZXtmaWxsOiMxMTc3RDc7fQoJLkdyZWVue2ZpbGw6IzAz + OUMyMzt9CgkuUmVke2ZpbGw6I0QxMUMxQzt9CgkuV2hpdGV7ZmlsbDojRkZGRkZGO30KCS5zdDB7b3Bh + Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQo8L3N0eWxl + Pg0KICA8ZyBpZD0iUHJvcGVydGllcyI+DQogICAgPHBhdGggZD0iTTMwLDE4di00bC00LjQtMC43Yy0w + LjItMC44LTAuNS0xLjUtMC45LTIuMWwyLjYtMy42bC0yLjgtMi44bC0zLjYsMi42Yy0wLjctMC40LTEu + NC0wLjctMi4xLTAuOUwxOCwyaC00ICAgbC0wLjcsNC40Yy0wLjgsMC4yLTEuNSwwLjUtMi4xLDAuOUw3 + LjUsNC43TDQuNyw3LjVsMi42LDMuNmMtMC40LDAuNy0wLjcsMS40LTAuOSwyLjFMMiwxNHY0bDQuNCww + LjdjMC4yLDAuOCwwLjUsMS41LDAuOSwyLjEgICBsLTIuNiwzLjZsMi44LDIuOGwzLjYtMi42YzAuNyww + LjQsMS40LDAuNywyLjEsMC45TDE0LDMwaDRsMC43LTQuNGMwLjgtMC4yLDEuNS0wLjUsMi4xLTAuOWwz + LjYsMi42bDIuOC0yLjhsLTIuNi0zLjYgICBjMC40LTAuNywwLjctMS40LDAuOS0yLjFMMzAsMTh6IE0x + NiwyMGMtMi4yLDAtNC0xLjgtNC00YzAtMi4yLDEuOC00LDQtNHM0LDEuOCw0LDRDMjAsMTguMiwxOC4y + LDIwLDE2LDIweiIgY2xhc3M9IkJsdWUiIC8+DQogIDwvZz4NCjwvc3ZnPgs= + + + + 1021, 95 + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40 @@ -521,15 +518,6 @@ TDI0LDIzLjh6IiBjbGFzcz0iQmxhY2siIC8+DQogIDwvZz4NCjwvc3ZnPgs= - - 851, 173 - - - 180, 56 - - - 623, 134 - 17, 95 @@ -603,16 +591,16 @@ 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== - - 17, 134 + + 537, 95 - - 17, 134 + + 537, 95 - - 1175, 95 + + 1021, 95 - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC @@ -624,7 +612,7 @@ rkJggg== - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC @@ -636,7 +624,7 @@ bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 @@ -647,7 +635,7 @@ lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w @@ -656,7 +644,7 @@ 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 @@ -665,7 +653,7 @@ oAc0QjgAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// @@ -676,13 +664,16 @@ 8l/FYwIYQ4UGBWBgAAC+0b+zuQxOnAAAAABJRU5ErkJggg== - - 1162, 173 + + 17, 134 - - 851, 173 + + 17, 134 - + + 1175, 95 + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAUpJREFUOE9jGLzg7gL2/7fmcf6/Oofr/8UZvP+hwsSD60CNfx41/v/zsOH/yckC @@ -694,7 +685,7 @@ rkJggg== - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAW9JREFUOE+1kE0ow2Ecx3dV3krt4oJaOSCTvIRkMqSxyITIzCQHDouEdnFwIOVC @@ -706,7 +697,7 @@ bO+G80MFwKUTxgfgcO/b8D9IpXoFiiMDHIQm0skAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAASpJREFUOE9jGDygcNbz/00Lnv/PnPj4P1QIA4S3P8Apx5A789n/VUfe/8elKL77 @@ -717,7 +708,7 @@ lf8gBXgVDULAwAAA8HbAq6XlmnAAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAALZJREFUOE9jGDogvP3BfyiTdBDf/eB/cMM18gyI73n4f+n+///9qy+QbkBE+32w @@ -726,7 +717,7 @@ 08g3AARUPCZQZsBgBQwMANAUYJgEulBVAAAAAElFTkSuQmCC - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAAKNJREFUOE9jGHygcNbz/1AmeSB35rP/Cd33yDckY8rT//P2//6f0HWHPEMSep78 @@ -735,7 +726,7 @@ oAc0QjgAAAAASUVORK5CYII= - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO vAAADrwBlbxySQAAASxJREFUOE9jGFygcNbz/1AmBgDJNS14/j9z4mOcahhyZz77n9B9D6sCkNyqI+// 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