ToolCollection/ToolCollection/ClassNIEmail.vb
Jonathan Jenne 688f53a74a jj 31.05
2017-05-31 12:17:35 +02:00

154 lines
7.6 KiB
VB.net

Imports System.Net.Mail
Imports System.IO
Public Class ClassNIEmail
Public Shared err_message As String
Public Shared Sub Add(ByVal errmsg As String)
err_message &= vbNewLine & errmsg
End Sub
Public Shared Sub Send_EMail(ByVal vBody As String, Optional ByVal Test As Boolean = False)
'#### E-MAIL NACHRICHT VERSENDEN
Try
'#########
Dim empfaenger As String()
If My.Settings.vNIEmailEmpf <> "" Then
If My.Settings.vNIEmailEmpf.Contains(";") Then
empfaenger = My.Settings.vNIEmailEmpf.Split(";")
Else
ReDim Preserve empfaenger(0)
empfaenger(0) = My.Settings.vNIEmailEmpf
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(My.Settings.vNIMailfrom, _mailempfaenger, My.Settings.vNIMailBetreff & " Domain: " & Environment.UserDomainName, _
"<font face=""Arial"">" & My.Settings.vNIMailBody & vBody & "<br>>> Maschine: " & Environment.MachineName & _
"<br>Kunde: " & frmStart._company & "<br>" & _
"<br>Domain-Name: " & Environment.UserDomainName & "<br>" & _
"<br>Gesendet am: " & My.Computer.Clock.LocalTime.ToShortDateString & "-" & _
My.Computer.Clock.LocalTime.ToLongTimeString & "</font>")
' create and add the attachment(s) */
'Dim logfile As String = ClassLogger.DateiSpeicherort & "\" & ClassLogger.DateiPrefix & System.DateTime.Now.ToString("yyyy_MM_dd") & ".txt"
'If logfile.Contains("\\") Then
' logfile = logfile.Replace("\\", "\")
'End If
'Dim Attachment As Attachment = New Attachment(logfile)
'message.Attachments.Add(Attachment)
With message
.IsBodyHtml = True
End With
'Einen SMTP Client erzeugen und Anmeldungsinformationen hinterlegen
Dim emailClient As New SmtpClient(My.Settings.vSMTP)
'Email mit Authentifizierung
Dim SMTPUserInfo As New System.Net.NetworkCredential(My.Settings.vMailUser.Trim, My.Settings.vMailPW.Trim) ', My.Settings.vDomain)
emailClient.UseDefaultCredentials = False
emailClient.Credentials = SMTPUserInfo
emailClient.Port = My.Settings.vemailPort
emailClient.DeliveryMethod = SmtpDeliveryMethod.Network
'*Send the message */
emailClient.Send(message)
ClassLoggerNI.Add("==> Fehler Email erfolgreich an " & _mailempfaenger & " versendet!", False)
ClassLoggerNI.Add("==> Text: " & vBody, False)
If Test = True Then
MsgBox("Email an " & _mailempfaenger & " erfolgreich versendet!", MsgBoxStyle.Information, "Erfolgsmeldung:")
End If
Next
End If
'########
Catch ex As Exception
If Test = True Then
MsgBox("Fehler im Mailversand:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler im Mailversand NI:")
Else
ClassLoggerNI.Add(">> Achtung: Fehler in Mailversand: " & ex.Message, False)
End If
End Try
End Sub
Public Shared Sub Send_Urgent(ByVal vBody As String, Optional ByVal Test As Boolean = False)
'#### E-MAIL NACHRICHT VERSENDEN
Try
Dim tempFilename = My.Computer.FileSystem.GetTempFileName()
Try
'Eine tempfile generieren
Dim name = Path.GetFileNameWithoutExtension(tempFilename)
tempFilename = Path.Combine(Path.GetDirectoryName(tempFilename), name & ".log")
File.Copy(ClassLoggerNI.LogDateiname, tempFilename)
' create and add the attachment(s) */
'If logfile.Contains("\\") Then
' logfile = logfile.Replace("\\", "\")
'End If
Catch ex As Exception
MsgBox("Fehler im Mailversand Urgent - Add LogFile: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
ClassLoggerNI.Add(">> Achtung: Fehler in Mailversand Urgent - Add LogFile: " & ex.Message, False)
End Try
'#########
Dim empfaenger As String()
Dim EMAIL_EMP As String = "support@didalog.de"
'If EMAIL_EMP.Contains(";") Then
empfaenger = EMAIL_EMP.Split(";")
'Else
'ReDim Preserve empfaenger(0)
'empfaenger(0) = EMAIL_EMP
' 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("alarm@didalog.de", _mailempfaenger, "Tool Collection - Critical Error - Domain: " & Environment.UserDomainName, _
"<font face=""Arial"">" & vBody & "<br>>> Maschine: " & Environment.MachineName & _
"<br>Kunde: " & frmStart._company & "<br>" & _
"<br>Domain-Name: " & Environment.UserDomainName & "<br>" & _
"<br>Gesendet am: " & My.Computer.Clock.LocalTime.ToShortDateString & "-" & _
My.Computer.Clock.LocalTime.ToLongTimeString & "</font>")
With message
.IsBodyHtml = True
End With
Dim Attachment As Attachment = New Attachment(tempFilename)
message.Attachments.Add(Attachment)
'Einen SMTP Client erzeugen und Anmeldungsinformationen hinterlegen
Dim emailClient As New SmtpClient("mail.triplew.de")
'Email mit Authentifizierung
Dim SMTPUserInfo As New System.Net.NetworkCredential("alarm@didalog.de", "ddemail72")
emailClient.UseDefaultCredentials = False
emailClient.Credentials = SMTPUserInfo
emailClient.Port = My.Settings.vemailPort
emailClient.DeliveryMethod = SmtpDeliveryMethod.Network
'*Send the message */
emailClient.Send(message)
'tempfile löschen
If My.Computer.FileSystem.FileExists(tempFilename) Then
'My.Computer.FileSystem.DeleteFile(tempFilename)
End If
ClassLoggerNI.Add(">> Urgent Email erfolgreich an " & _mailempfaenger & " versendet!", False)
If Test = True Then
MsgBox("Email an " & _mailempfaenger & " erfolgreich versendet!", MsgBoxStyle.Information, "Erfolgsmeldung:")
End If
Next
'########
Catch ex As Exception
If Test = True Then
MsgBox("Fehler im Mailversand Urgent:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
Else
ClassLoggerNI.Add(">> Achtung: Fehler in Mailversand Urgent: " & ex.Message, False)
End If
End Try
End Sub
End Class