Imports System Imports Independentsoft.Email Imports Independentsoft.Email.Smtp Imports Independentsoft.Email.Mime Public Class Email Private Shared Logger As NLog.Logger = NLog.LogManager.GetCurrentClassLogger Public Function NewSendMail(ByVal mailSubject As String, ByVal mailBody As String, mailto As String, mailfrom As String, mailsmtp As String, mailport As Integer, mailUser As String, mailPW As String, AUTH_TYPE As String, Optional attment As String = "") Dim empfaenger As String() If mailto.Contains(";") Then empfaenger = mailto.Split(";") Else ReDim Preserve empfaenger(0) empfaenger(0) = mailto End If Dim _error As Boolean = False 'Für jeden Empfänger eine Neue Mail erzeugen For Each _mailempfaenger As String In empfaenger Try Dim message As New Message With { .From = New Mailbox(mailfrom, mailfrom) } message.[To].Add(New Mailbox(_mailempfaenger)) message.Subject = mailSubject Dim textBodyPart As New BodyPart With { .ContentType = New ContentType("text", "plain", "utf-8"), .ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable, .Body = mailBody } message.BodyParts.Add(textBodyPart) If attment <> String.Empty Then If System.IO.File.Exists(attment) Then Dim attachment1 As New Attachment(attment) If attment.ToLower.EndsWith("pdf") Then attachment1.ContentType = New ContentType("application", "pdf") ElseIf attment.ToLower.EndsWith("jpg") Then attachment1.ContentType = New ContentType("application", "jpg") ElseIf attment.ToLower.EndsWith("docx") Then attachment1.ContentType = New ContentType("application", "MS-word") End If message.BodyParts.Add(attachment1) End If End If Dim client As SmtpClient Try client = New SmtpClient(mailsmtp, mailport) Catch ex As Exception Logger.Warn("clsEmail.SendMail(Create Client): " & ex.Message) _error = True Continue For End Try Try client.Connect() Catch ex As Exception Logger.Warn("clsEmail.SendMail(Client.Connect): " & ex.Message) _error = True Continue For End Try Logger.Info("Connected to Client!") If AUTH_TYPE = "SSL" Then client.EnableSsl = True client.ValidateRemoteCertificate = True Logger.Info("Authentification via SSL.") ElseIf AUTH_TYPE = "TLS" Then Try client.EnableSsl = False Logger.Info("Authentification via TLS. SSL enabled") 'client.StartTls() Catch ex As Exception Logger.Warn("clsEmail.SendMail(Client.StartTls): " & ex.Message) _error = True Continue For End Try End If Try client.Login(mailUser, mailPW) Logger.Info("Logged in!") Catch ex As Exception Logger.Warn("clsEmail.SendMail(Client.Login): " & ex.Message) _error = True client.Disconnect() Continue For End Try Try client.Send(message) Logger.Info("Message to " & _mailempfaenger & " has been send.") Catch ex As Exception Logger.Warn("clsEmail.SendMail(Client.Send): " & ex.Message) _error = True client.Disconnect() Continue For End Try client.Disconnect() Catch ex As Exception Logger.Error(ex) _error = True End Try Next If _error = True Then Return False Else Return True End If End Function End Class