diff --git a/app/ClassWMResulthandler/ClassWMResulthandler.vbproj b/app/ClassWMResulthandler/ClassWMResulthandler.vbproj
index 8443c6a..8c19dd9 100644
--- a/app/ClassWMResulthandler/ClassWMResulthandler.vbproj
+++ b/app/ClassWMResulthandler/ClassWMResulthandler.vbproj
@@ -43,6 +43,9 @@
On
+
+ P:\Projekte DIGITAL DATA\DIGITAL DATA - Entwicklung\DLL_Bibliotheken\Email .NET\Bin\Independentsoft.Email.dll
+
P:\Visual Studio Projekte\Bibliotheken\windream\Interop.WINDREAMLib.dll
False
diff --git a/app/ClassWMResulthandler/clsEmail.vb b/app/ClassWMResulthandler/clsEmail.vb
index 0d430a1..511ff8b 100644
--- a/app/ClassWMResulthandler/clsEmail.vb
+++ b/app/ClassWMResulthandler/clsEmail.vb
@@ -1,4 +1,8 @@
-Imports System.Net.Mail
+
+Imports System
+Imports Independentsoft.Email
+Imports Independentsoft.Email.Smtp
+Imports Independentsoft.Email.Mime
Public Class clsEmail
Private Shared MailAktiv As Boolean = False
@@ -26,65 +30,151 @@ Public Class clsEmail
' Return False
' End Try
' End Function
- Public Shared Function Send_EMail(ByVal MailBetreff As String, ByVal vBody As String, MailEmpfaenger As String, MailFrom As String, MAilSMTP As String, MailUser As String, MailUser_PW As String, SSL As Boolean,
- Optional attment As String = "", Optional test As Boolean = False)
- '#### E-MAIL NACHRICHT VERSENDEN
- Try
- Dim empfaenger As String()
- If MailEmpfaenger.Contains(";") Then
- empfaenger = MailEmpfaenger.Split(";")
- Else
- ReDim Preserve empfaenger(0)
- empfaenger(0) = MailEmpfaenger
- End If
- 'Für jeden Empfänger eine Neue Mail erzeugen
- For Each _mailempfaenger As String In empfaenger
- 'Neue Nachricht erzeugen:
- Dim message As New MailMessage(MailFrom, _mailempfaenger, MailBetreff,
- "" & vBody & "") '& "
" &
- '"
Domain: " & Environment.UserDomainName &
- '"
Gesendet am: " & My.Computer.Clock.LocalTime.ToShortDateString & "-" &
- 'My.Computer.Clock.LocalTime.ToLongTimeString &
+ 'Public Shared Function Send_EMail(ByVal MailBetreff As String, ByVal vBody As String, MailEmpfaenger As String, MailFrom As String, MAilSMTP As String, MailUser As String, MailUser_PW As String, SSL As Boolean,
+ ' Optional attment As String = "", Optional test As Boolean = False)
+ ' '#### E-MAIL NACHRICHT VERSENDEN
+ ' Try
+ ' Dim empfaenger As String()
+ ' If MailEmpfaenger.Contains(";") Then
+ ' empfaenger = MailEmpfaenger.Split(";")
+ ' Else
+ ' ReDim Preserve empfaenger(0)
+ ' empfaenger(0) = MailEmpfaenger
+ ' End If
+ ' 'Für jeden Empfänger eine Neue Mail erzeugen
+ ' For Each _mailempfaenger As String In empfaenger
+ ' 'Neue Nachricht erzeugen:
+ ' Dim message As New MailMessage(MailFrom, _mailempfaenger, MailBetreff,
+ ' "" & vBody & "") '& "
" &
+ ' '"
Domain: " & Environment.UserDomainName &
+ ' '"
Gesendet am: " & My.Computer.Clock.LocalTime.ToShortDateString & "-" &
+ ' 'My.Computer.Clock.LocalTime.ToLongTimeString &
- ' create and add the attachment(s) */
+ ' ' create and add the attachment(s) */
+ ' If attment <> String.Empty Then
+ ' If System.IO.File.Exists(attment) Then
+ ' Dim Attachment As Attachment = New Attachment(attment)
+ ' message.Attachments.Add(Attachment)
+ ' End If
+ ' End If
+
+ ' With message
+ ' .IsBodyHtml = True
+ ' End With
+
+ ' 'Einen SMTP Client erzeugen und Anmeldungsinformationen hinterlegen
+ ' Dim emailClient As New SmtpClient(MAilSMTP)
+ ' emailClient.EnableSsl = SSL
+ ' 'Email mit Authentifizierung
+ ' Dim SMTPUserInfo As New System.Net.NetworkCredential(MailUser, MailUser_PW) ', My.Settings.vDomain)
+ ' emailClient.UseDefaultCredentials = False
+ ' emailClient.Credentials = SMTPUserInfo
+ ' emailClient.Port = 25
+ ' clsLogger.Add("==> Email erfolgreich an " & _mailempfaenger & " versendet!", False)
+ ' clsLogger.Add("==> Text: " & vBody, False)
+ ' clsLogger.Add("", False)
+ ' '*Send the message */
+
+ ' emailClient.Send(message)
+ ' If test = True Then
+ ' MsgBox("The testmail was send successfully", MsgBoxStyle.Information)
+ ' End If
+ ' Next
+ ' Return True
+ ' Catch ex As Exception
+ ' clsLogger.Add(ex.Message, True, "cls.SendEmail")
+ ' If test = True Then
+ ' MsgBox("Unexpected error in Send Testmail: " & ex.Message, MsgBoxStyle.Critical)
+ ' End If
+ ' Return False
+ ' End Try
+ 'End Function
+ Public Shared Function Email_Send_Independentsoft(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,
+ SSL As Boolean, 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()
+ message.From = New Mailbox(mailfrom, mailfrom)
+ message.[To].Add(New Mailbox(_mailempfaenger))
+ message.Subject = mailSubject
+
+ Dim textBodyPart As New BodyPart()
+ textBodyPart.ContentType = New ContentType("text", "plain", "utf-8")
+ textBodyPart.ContentTransferEncoding = ContentTransferEncoding.QuotedPrintable
+ textBodyPart.Body = mailBody
+ message.BodyParts.Add(textBodyPart)
If attment <> String.Empty Then
If System.IO.File.Exists(attment) Then
- Dim Attachment As Attachment = New Attachment(attment)
- message.Attachments.Add(Attachment)
+ Dim attachment1 As New Attachment("c:\testfolder\test.docx")
+ 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
+ clsLogger.AddError(ex.Message, "clsEmail.SendMail(Create Client)")
+ _error = True
+ Continue For
+ End Try
- With message
- .IsBodyHtml = True
- End With
+ Try
+ client.Connect()
+ Catch ex As Exception
+ clsLogger.AddError(ex.Message, "clsEmail.SendMail(Client.Connect)")
+ _error = True
+ Continue For
- 'Einen SMTP Client erzeugen und Anmeldungsinformationen hinterlegen
- Dim emailClient As New SmtpClient(MAilSMTP)
- emailClient.EnableSsl = SSL
- 'Email mit Authentifizierung
- Dim SMTPUserInfo As New System.Net.NetworkCredential(MailUser, MailUser_PW) ', My.Settings.vDomain)
- emailClient.UseDefaultCredentials = False
- emailClient.Credentials = SMTPUserInfo
- emailClient.Port = 25
- clsLogger.Add("==> Email erfolgreich an " & _mailempfaenger & " versendet!", False)
- clsLogger.Add("==> Text: " & vBody, False)
- clsLogger.Add("", False)
- '*Send the message */
+ End Try
+ client.StartTls()
+ Try
+ client.Login(mailUser, mailPW)
+ Catch ex As Exception
+ clsLogger.AddError(ex.Message, "clsEmail.SendMail(Client.Login)")
+ _error = True
+ client.Disconnect()
+ Continue For
+ End Try
+ Try
+ client.Send(message)
+ Catch ex As Exception
+ clsLogger.AddError(ex.Message, "clsEmail.SendMail(Client.Send)")
+ _error = True
+ client.Disconnect()
+ Continue For
+ End Try
+ client.Disconnect()
- emailClient.Send(message)
- If test = True Then
- MsgBox("The testmail was send successfully", MsgBoxStyle.Information)
- End If
- Next
- Return True
- Catch ex As Exception
- clsLogger.Add(ex.Message, True, "cls.SendEmail")
- If test = True Then
- MsgBox("Unexpected error in Send Testmail: " & ex.Message, MsgBoxStyle.Critical)
- End If
+ Catch ex As Exception
+ clsLogger.AddError(ex.Message, "clsEmail.SendMail()")
+ _error = True
+ End Try
+ Next
+ clsLogger.WriteLog()
+
+ If _error = True Then
Return False
- End Try
+ Else
+ Return True
+ End If
End Function
-
End Class
diff --git a/app/ClassWMResulthandler/clsLogger.vb b/app/ClassWMResulthandler/clsLogger.vb
index d05e030..ec14232 100644
--- a/app/ClassWMResulthandler/clsLogger.vb
+++ b/app/ClassWMResulthandler/clsLogger.vb
@@ -85,13 +85,13 @@ Public Class clsLogger
End If
'Präfixe schreiben
If _error = True And Funktion <> "" Then
- msg = ">> Achtung Fehler in Funktion '" & Funktion & "'" & vbNewLine & "Fehlermeldung: "
+ msg = ">> Unexpected error in function '" & Funktion & "': "
ElseIf _error = True Then
- msg = ">> Achtung Fehler:" & vbNewLine & "Fehlermeldung: "
+ msg = ">> Unexpected error: "
End If
'Präfix und Meldung zusammenstellen
msg &= text
- log_string &= msg
+ log_string &= Now.ToString & " " & msg
End Sub
Public Shared Sub AddError(ByVal error_string As String, Optional ByVal Funktion As String = "")
If Inited = False Then
@@ -101,12 +101,12 @@ Public Class clsLogger
'Zuerst mal die Details schreiben
WriteLog()
'Nun den eigentlichen Fehler loggen
- Dim msg As String
+ Dim msg As String = Now.ToString
'Präfixe schreiben
If Funktion <> "" Then
- msg = ">> Achtung Fehler in Funktion '" & Funktion & "'" & vbNewLine & "Fehlermeldung: "
+ msg &= ">> Unexpected error in function '" & Funktion & "': "
Else
- msg = ">> Achtung Fehler:" & vbNewLine & "Fehlermeldung: "
+ msg &= ">> Unexpected error: "
End If
'Präfix und Meldung zusammenstellen
msg &= error_string
@@ -145,6 +145,12 @@ Public Class clsLogger
Public Shared Sub WriteLog()
Try
+ If log_string = Nothing Then
+ Exit Sub
+ End If
+ If log_string = String.Empty Then
+ Exit Sub
+ End If
'Veruch das Log zu öffnen
Dim fs As FileStream = New FileStream(LogFilename, FileMode.OpenOrCreate, FileAccess.Write)
' --- Stream öffnen
diff --git a/app/ClassWMResulthandler/clsProfil.vb b/app/ClassWMResulthandler/clsProfil.vb
index 8cf0ecf..22493f4 100644
--- a/app/ClassWMResulthandler/clsProfil.vb
+++ b/app/ClassWMResulthandler/clsProfil.vb
@@ -156,6 +156,7 @@ Public Class clsProfil
Dim MAIL_USER As String = ""
Dim MAIL_USER_PW As String = ""
Dim MAIL_SSL As Boolean = False
+ Dim MAIL_PORT As String = "25"
For Each emailrow As DataRow In ClassWMResulthandler.clsCURRENT.DT_TBDD_EMAIL.Rows
If emailrow.Item("GUID") = CInt(EMAIL_PROFIL) Then
@@ -164,6 +165,7 @@ Public Class clsProfil
MAIL_USER = emailrow.Item("EMAIL_USER")
MAIL_USER_PW = emailrow.Item("EMAIL_PW")
MAIL_SSL = emailrow.Item("SSL_AUTH")
+ MAIL_PORT = emailrow.Item("PORT")
End If
Next
@@ -192,7 +194,7 @@ Public Class clsProfil
Email_Betreff = clsDateiverarbeitung.REGEX_REPLACE(WMdok, Email_Betreff)
Email_Body = clsDateiverarbeitung.REGEX_REPLACE(WMdok, Email_Body)
Dim FILENAME = ClassWMResulthandler.clsCURRENT.WDLAUFWERK & ":" & WMdok.aPath
- clsEmail.Send_EMail(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_USER, MAIL_USER_PW, MAIL_SSL, FILENAME)
+ clsEmail.Email_Send_Independentsoft(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_SSL, FILENAME)
Else
@@ -471,7 +473,7 @@ Public Class clsProfil
Dim MAIL_USER As String = ""
Dim MAIL_USER_PW As String = ""
Dim MAIL_SSL As Boolean = False
-
+ Dim MAIL_PORT As Integer
For Each emailrow As DataRow In ClassWMResulthandler.clsCURRENT.DT_TBDD_EMAIL.Rows
If emailrow.Item("GUID") = CInt(EMAIL_PROFIL) Then
@@ -480,6 +482,7 @@ Public Class clsProfil
MAIL_USER = emailrow.Item("EMAIL_USER")
MAIL_USER_PW = emailrow.Item("EMAIL_PW")
MAIL_SSL = emailrow.Item("SSL_AUTH")
+ MAIL_PORT = emailrow.Item("PORT")
End If
Next
@@ -501,7 +504,7 @@ Public Class clsProfil
Return False
End If
- clsEmail.Send_EMail(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_USER, MAIL_USER_PW, MAIL_SSL, ClassWMResulthandler.clsCURRENT.CONCATTED_FILE)
+ clsEmail.Email_Send_Independentsoft(Email_Betreff, Email_Body, Email_Empfänger, MAILFROM, MAILSMTP, MAIL_PORT, MAIL_USER, MAIL_USER_PW, MAIL_SSL, ClassWMResulthandler.clsCURRENT.CONCATTED_FILE)
Else
diff --git a/app/ResultHandler_Konfig/My Project/AssemblyInfo.vb b/app/ResultHandler_Konfig/My Project/AssemblyInfo.vb
index f223c3c..7e4f09e 100644
--- a/app/ResultHandler_Konfig/My Project/AssemblyInfo.vb
+++ b/app/ResultHandler_Konfig/My Project/AssemblyInfo.vb
@@ -8,7 +8,7 @@ Imports System.Runtime.InteropServices
' Die Werte der Assemblyattribute überprüfen
-
+
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
'
-
+
diff --git a/app/ResultHandler_Konfig/frmMain.vb b/app/ResultHandler_Konfig/frmMain.vb
index acaa125..d053baa 100644
--- a/app/ResultHandler_Konfig/frmMain.vb
+++ b/app/ResultHandler_Konfig/frmMain.vb
@@ -640,10 +640,7 @@ Public Class frmMain
Sub Manual(ID As Integer)
'Try
Dim notcompleted As Boolean = False
-
- ClassWMResulthandler.clsLogger.Add("", False)
ClassWMResulthandler.clsLogger.Add("## Start Durchlauf WindreamResultHandler - " & Now & " ## ", False)
- ClassWMResulthandler.clsLogger.Add("", False)
'windream initialisieren
If ClassWMResulthandler.clsDatatabase.Init(My.Settings.SQLSERVER_CS) = True Then
If _windream.Init() = True Then
@@ -783,8 +780,12 @@ Public Class frmMain
Dim PWPlain = wrapper.DecryptData(EMAIL_PWTextBox.Text)
- ClassWMResulthandler.clsEmail.Send_EMail("Testmail DD Windream-ResultHandler", "This is the body (text will be replaced within profile)", txtTestmail.Text,
- EMAIL_FROMTextBox.Text, EMAIL_SMTPTextBox.Text, EMAIL_USERTextBox.Text, PWPlain, CheckBoxSSL.CheckState, "", True)
+ If ClassWMResulthandler.clsEmail.Email_Send_Independentsoft("Testmail DD Windream-ResultHandler", "This is the body (text will be replaced within profile)", txtTestmail.Text,
+ EMAIL_FROMTextBox.Text, EMAIL_SMTPTextBox.Text, PORTTextBox.Text, EMAIL_USERTextBox.Text, PWPlain, CheckBoxSSL.CheckState, "") = True Then
+ MsgBox("Email was send successfully.", MsgBoxStyle.Information)
+ Else
+ MsgBox("Could not send the testmail. Please check the log.", MsgBoxStyle.Exclamation)
+ End If
End If
End Sub