MS ZF Init Change TBDDCONNMessaging Limilab
This commit is contained in:
parent
dcf5bbe21c
commit
7064978ecb
@ -71,10 +71,11 @@ Public Class ClassInit
|
||||
Throw New InitException("Could not initialize ECM-Database!")
|
||||
|
||||
Else
|
||||
Dim oSQl = "SELECT * FROM TBDD_CONNECTION WHERE BEZEICHNUNG = 'IDB'"
|
||||
Dim oSQl = "SELECT * FROM TBDD_CONNECTION WHERE BEZEICHNUNG = 'IDB' AND AKTIV = 1"
|
||||
Dim oDatatable As DataTable = My.DatabaseECM.GetDatatable(oSQl)
|
||||
|
||||
If IsNothing(oDatatable) OrElse oDatatable.Rows.Count = 0 Then
|
||||
MsgBox("No IDB connection entries in TBDD_CONNECTION found!", MsgBoxStyle.Exclamation)
|
||||
Logger.Warn("No IDB connection entries in TBDD_CONNECTION found!")
|
||||
Throw New InitException("Fehler beim Laden der IDB Verbindungsdaten!")
|
||||
End If
|
||||
|
||||
@ -8,6 +8,7 @@ Imports System
|
||||
Imports System.Security.Authentication
|
||||
Imports Limilabs.Mail.Headers
|
||||
Imports Limilabs.Mail.MIME
|
||||
Imports Limilabs
|
||||
|
||||
Public Class Limilab
|
||||
Private Initialized As Boolean = False
|
||||
@ -18,8 +19,9 @@ Public Class Limilab
|
||||
Private User As String
|
||||
Private Password As String
|
||||
Private AuthType As String
|
||||
Private ImapObject As Imap
|
||||
Private LimilabImapObject As Imap
|
||||
Public ErrorMessage As String
|
||||
Private CURR_ListUIDs As List(Of Long)
|
||||
Public Sub New(LogConfig As LogConfig)
|
||||
LogConfig = LogConfig
|
||||
Logger = LogConfig.GetLogger()
|
||||
@ -34,7 +36,8 @@ Public Class Limilab
|
||||
''' <param name="oPassword">IMAP-Password</param>
|
||||
''' <param name="oAuthType">Auth-Type</param>
|
||||
''' <param name="Folder">The folder to fetch messages from. Defaults to `Inbox`</param>
|
||||
Public Sub InitIMAP(oImapServer As String, oPort As Integer, oUser As String, oPassword As String, oAuthType As String, Optional Folder As String = "Inbox")
|
||||
Public Sub InitIMAP(Log_enabled As Boolean, oImapServer As String, oPort As Integer, oUser As String, oPassword As String, oAuthType As String, Optional Folder As String = "Inbox")
|
||||
LOG_Limilab(Log_enabled)
|
||||
IMAPServer = oImapServer
|
||||
IMAPPort = oPort
|
||||
User = oUser
|
||||
@ -42,12 +45,35 @@ Public Class Limilab
|
||||
AuthType = oAuthType
|
||||
Initialized = True
|
||||
End Sub
|
||||
Public Function CloseImap() As Boolean
|
||||
Try
|
||||
If Initialized = False Then
|
||||
Return True
|
||||
Else
|
||||
LimilabImapObject.Close()
|
||||
Return True
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
ErrorMessage = ex.Message
|
||||
Return False
|
||||
End Try
|
||||
|
||||
|
||||
End Function
|
||||
|
||||
Private Function LOG_Limilab(Log_enabled As Boolean) As Boolean
|
||||
Mail.Log.Enabled = Log_enabled
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' Tests connection to a given IMAP Server by connecting and doing a simple message query.
|
||||
''' </summary>
|
||||
''' <returns>True if connection and query were successful. False otherwise.</returns>
|
||||
Public Function IMAPTestLogin() As Boolean
|
||||
Logger.Debug("Testing Login to Server {0}:{1} with user {2}", IMAPServer, IMAPPort, User)
|
||||
Logger.Debug("Starting IMAPTestLogin ...")
|
||||
|
||||
If Initialized = False Then
|
||||
Return False
|
||||
End If
|
||||
@ -55,7 +81,7 @@ Public Class Limilab
|
||||
Logger.Debug("Connecting...")
|
||||
Dim oReturn As Boolean = ImapConnect()
|
||||
If oReturn = True Then
|
||||
ImapObject.Close()
|
||||
LimilabImapObject.Close()
|
||||
End If
|
||||
Return oReturn
|
||||
Catch ex As Exception
|
||||
@ -64,11 +90,32 @@ Public Class Limilab
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Public Function IMAPGetUnseenMessageIDs() As List(Of Long)
|
||||
Dim oListuids As New List(Of Long)
|
||||
Logger.Debug("Starting IMAPGetMessageIDs ...")
|
||||
If Initialized = False Then
|
||||
Return Nothing
|
||||
End If
|
||||
Try
|
||||
Dim oConnect As Boolean = ImapConnect()
|
||||
|
||||
If oConnect = True Then
|
||||
oListuids = ImapGetMessageIDs_Unseen()
|
||||
CURR_ListUIDs = oListuids
|
||||
End If
|
||||
Return oListuids
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
ErrorMessage = ex.Message
|
||||
Return Nothing
|
||||
End Try
|
||||
End Function
|
||||
Private Function ImapConnect() As Boolean
|
||||
Try
|
||||
If Initialized = False Then
|
||||
Return True
|
||||
End If
|
||||
Logger.Debug("ImapConnect {0}:{1} with user {2}", IMAPServer, IMAPPort, User)
|
||||
Dim oReturnImap As New Imap()
|
||||
AddHandler oReturnImap.ServerCertificateValidate, AddressOf Validate
|
||||
Logger.Debug($"AUTH_TYPE [{AuthType}]")
|
||||
@ -106,7 +153,7 @@ Public Class Limilab
|
||||
Logger.Debug("Login with User and password...")
|
||||
oReturnImap.UseBestLogin(User, Password)
|
||||
Logger.Debug(">> Logged on!")
|
||||
ImapObject = oReturnImap
|
||||
LimilabImapObject = oReturnImap
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
@ -119,6 +166,7 @@ Public Class Limilab
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Private Sub Validate(
|
||||
ByVal sender As Object,
|
||||
ByVal e As ServerCertificateValidateEventArgs)
|
||||
@ -135,31 +183,21 @@ Public Class Limilab
|
||||
End If
|
||||
e.IsValid = False
|
||||
End Sub
|
||||
Public Function ImapGetMessageIDs() As List(Of Long)
|
||||
Private Function ImapGetMessageIDs_Unseen() As List(Of Long)
|
||||
Dim oListuids As New List(Of Long)
|
||||
Try
|
||||
ImapObject.SelectInbox()
|
||||
LimilabImapObject.SelectInbox()
|
||||
|
||||
oListuids = ImapObject.Search(Flag.Unseen)
|
||||
oListuids = LimilabImapObject.Search(Flag.Unseen)
|
||||
|
||||
Return oListuids
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
ErrorMessage = ex.Message
|
||||
Return oListuids
|
||||
Return Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
Public Function DeleteMessageByUID(oUID As String) As Boolean
|
||||
Try
|
||||
ImapObject.DeleteMessageByUID(oUID)
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
ErrorMessage = ex.Message
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
''' <summary>
|
||||
''' Creates a MailObject and sends Mail via smtp.
|
||||
''' </summary>
|
||||
@ -262,4 +300,62 @@ Public Class Limilab
|
||||
End Try
|
||||
|
||||
End Function
|
||||
Public Function GetMailInfo(UID As Long) As Boolean
|
||||
Try
|
||||
Dim eml = LimilabImapObject.GetMessageByUID(UID)
|
||||
Dim email As IMail = New MailBuilder().CreateFromEml(eml)
|
||||
' Subject
|
||||
Console.WriteLine(email.Subject)
|
||||
|
||||
' From
|
||||
For Each m As MailBox In email.From
|
||||
Console.WriteLine(m.Address)
|
||||
Console.WriteLine(m.Name)
|
||||
Next
|
||||
' Date
|
||||
Console.WriteLine(email.[Date])
|
||||
' Text body of the message
|
||||
Console.WriteLine(email.Text)
|
||||
' Html body of the message
|
||||
Console.WriteLine(email.Html)
|
||||
' Custom header
|
||||
Console.WriteLine(email.Document.Root.Headers("x-spam-value"))
|
||||
' Save all attachments to disk
|
||||
For Each mime As MimeData In email.Attachments
|
||||
mime.Save("c:\" + mime.SafeFileName)
|
||||
Next
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
ErrorMessage = ex.Message
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
Public Function GetMailObjects() As ArrayList
|
||||
Try
|
||||
Dim WORKMAIL_LIST As New ArrayList()
|
||||
For Each oUID In CURR_ListUIDs
|
||||
Dim oEml = LimilabImapObject.GetMessageByUID(oUID)
|
||||
Dim oEmail As IMail = New MailBuilder().CreateFromEml(oEml)
|
||||
WORKMAIL_LIST.Add(oEmail)
|
||||
Next
|
||||
Return WORKMAIL_LIST
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
ErrorMessage = ex.Message
|
||||
Return Nothing
|
||||
End Try
|
||||
|
||||
End Function
|
||||
Public Function IMAP_DeleteByUID(UID As String) As Boolean
|
||||
Try
|
||||
LimilabImapObject.DeleteMessageByUID(UID)
|
||||
Return True
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
ErrorMessage = ex.Message
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
End Class
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user