Jonathan Jenne 2a76d515cb fix session
2023-10-11 15:05:08 +02:00

77 lines
3.2 KiB
VB.net

Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Messaging
Imports DigitalData.Modules.Messaging.Mail
Public Class clsJob_Work
Dim Logger As Logger
Private MyLogger As LogConfig
Private _mail As MailSender
Public Sub New(MyLoggerConf As LogConfig, _email As MailSender)
Logger = MyLoggerConf.GetLogger()
MyLogger = MyLoggerConf
_mail = _email
End Sub
Public Function New_Mail_with_attachment(Email_receipiants As String, Email_subject As String, Email_Body As String, EmailProfil As Integer, DTTBDD_EMAIL As DataTable, Attachment_Filename As String)
Try
Logger.Debug("Email_Empfänger: " & Email_receipiants)
Logger.Debug("Email_Betreff: " & Email_subject)
Logger.Debug("Email_Body: " & Email_Body)
Logger.Debug("EMAIL_PROFIL: " & EmailProfil)
Dim oMAILFROM As String = ""
Dim oMAILSMTP As String = ""
Dim oMAIL_USER As String = ""
Dim oMAIL_USER_PW As String = ""
Dim oMAIL_AUTH_TYPE As String = "SSL"
Dim oMAIL_PORT As String = "25"
If IsNothing(DTTBDD_EMAIL) And DTTBDD_EMAIL.Rows.Count >= 1 Then
Logger.Warn("DT_TBDD_EMAIL is nothing or contains no rows")
Return False
End If
For Each emailrow As DataRow In clsCURRENT.DT_TBDD_EMAIL.Rows
If emailrow.Item("GUID") = CInt(EmailProfil) Then
oMAILFROM = emailrow.Item("EMAIL_FROM")
oMAILSMTP = emailrow.Item("EMAIL_SMTP")
oMAIL_USER = emailrow.Item("EMAIL_USER")
oMAIL_USER_PW = emailrow.Item("EMAIL_PW")
oMAIL_AUTH_TYPE = emailrow.Item("AUTH_TYPE")
oMAIL_PORT = emailrow.Item("PORT")
End If
Next
Dim owrapper As New clsEncryption("!35452didalog=")
Dim oPWPlain = owrapper.DecryptData(oMAIL_USER_PW)
If Not IsNothing(oPWPlain) Then
oMAIL_USER_PW = oPWPlain
Else
Logger.Warn("PWPlain is Nothing - Could not decrypt passwort 44")
Return False
End If
Dim oSendto As New List(Of String)
Dim oSplit = Email_receipiants.Split(";")
For Each oMailAdress In oSplit
oSendto.Add(oMailAdress)
Next
Dim oAttMt As New List(Of String)
If Attachment_Filename <> String.Empty Then
oAttMt.Add(Attachment_Filename)
End If
Dim oSession = _mail.Connect(oMAILSMTP, oMAIL_PORT, oMAIL_USER, oPWPlain, oMAIL_AUTH_TYPE)
If oSession.Connected = True Then
Logger.Info($"MAIL: Connection to {oMAILSMTP} successfull!")
If _mail.SendMail(oSendto, oMAILFROM, Email_subject, Email_Body, Now, oAttMt, 0) = True Then
Return True
Else
Logger.Warn("ConnectToServer was not successfull!")
Return False
End If
End If
Catch ex As Exception
Logger.Error(ex)
Return False
End Try
End Function
End Class