Imports DigitalData.Modules.Logging
Imports Limilabs.Mail
Imports Limilabs.Client.IMAP
Imports Limilabs.Client.SMTP
Imports Limilabs.Client
Imports System.Net.Security
Imports System
Imports System.Security.Authentication
Imports Limilabs.Mail.Headers
Imports Limilabs.Mail.MIME
Public Class Limilab
Private Initialized As Boolean = False
Private LogConfig As LogConfig
Private Logger As DigitalData.Modules.Logging.Logger
Private IMAPServer As String
Private IMAPPort As Integer
Private User As String
Private Password As String
Private AuthType As String
Private ImapObject As Imap
Public ErrorMessage As String
Public Sub New(LogConfig As LogConfig)
LogConfig = LogConfig
Logger = LogConfig.GetLogger()
Logger.Info("Limilab initialized")
End Sub
'''
Creation-time: " & ADDED_DATETIME End If If Test = True Then oMailBuilder.Html = $"This is a Testmail!
The body-text will be replaced within profile!
mailsmtp: {mailsmtp}
mailport: {mailport}
mailUser: {mailUser}
mailPW: XXXX
AUTH_TYPE: {AUTH_TYPE}"
Else
oMailBuilder.Html = mailBody
End If
Logger.Debug($"mailBody [{oMailBuilder.Html.ToString}]")
If attachmentString <> "" Then
' Read attachment from disk, add it to Attachments collection
If System.IO.File.Exists(attachmentString) Then
Dim oAttachment As MimeData = oMailBuilder.AddAttachment(attachmentString)
End If
End If
Dim email As IMail = oMailBuilder.Create()
' Send the message
Using oSmtp As New Smtp()
AddHandler oSmtp.ServerCertificateValidate, AddressOf Validate
Logger.Debug($"AUTH_TYPE [{AUTH_TYPE}]")
If AUTH_TYPE = "SSL" Then
Try
If mailport <> "465" Then
Logger.Debug($"Connecting with explizit port [{mailport}]")
oSmtp.Connect(mailsmtp, mailport)
Logger.Debug($"Connect to [{mailsmtp}] successful!")
Else
oSmtp.ConnectSSL(mailsmtp)
End If
Catch ex As Exception
Logger.Error(ex)
End Try
ElseIf AUTH_TYPE = "SSL/TLS" Then
'##########################################################################################
'Tested with ExchangeServer SWB 22.10.2021
'##########################################################################################
If mailport <> "587" Then
Logger.Debug($"Connecting with explizit port [{mailport}]")
oSmtp.Connect(mailsmtp, mailport)
Else
oSmtp.Connect(mailsmtp)
End If
Logger.Debug($"Connect to [{mailsmtp}] successful!")
Dim supportsStartTLS As Boolean = oSmtp.SupportedExtensions().Contains(SmtpExtension.StartTLS)
If supportsStartTLS = True Then
oSmtp.StartTLS()
Logger.Debug($"TLS started!")
Else
Logger.Info("Server supports no StartTLS")
oSmtp.SSLConfiguration.EnabledSslProtocols = SslProtocols.Tls12
End If
Else
oSmtp.Connect(mailsmtp)
End If
Logger.Debug($"mailUser [{mailUser}]")
oSmtp.UseBestLogin(mailUser, mailPW) ' remove if not needed
oSmtp.SendMessage(email)
Logger.Info("Message to " & oMailReceipiant & " has been send.")
oSmtp.Close()
End Using
Next
Return True
Catch ex As Exception
Logger.Error(ex)
ErrorMessage = ex.Message
Return False
End Try
End Function
End Class