154 lines
7.6 KiB
VB.net
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
|