besitzt Visual Basic ein Interface für den E-mail-Versand?
Hintergrund ist dabei, dass bei einer auftretenden Störung, der Verantwortliche (falls nicht vor Ort) benachrichtigt werden soll um diese zu beheben.
Danke im Voraus.
Sub Sende()
Dim olApp, Mail As Object
Dim objNachrich As Object
Set olApp = CreateObject("Outlook.Application")
Set objNachrich = olApp.CreateItem(0)
Set Mail = objNachrich
Mail.To = "email@spammail.com"
Mail.cc = "2-you@gmx.ch"
Mail.Body = "Hallo XY," & Chr(10) & Chr(10) _
& "Bla Bla Bla." & Chr(10) & Chr(10) _
& "Gruß" & Chr(10) _
& "Versender" & Chr(10) & Chr(10)
Mail.Subject = "TESTMAIL"
Mail.Attachments.Add "C:\Dokumente und Einstellungen\pesc\Desktop\Links\test.doc"
Mail.Display
End Sub
Bei mir ist das ganze so, dass eine Störmeldung aufläuft und im anschluss daran eine Mail versendet werden soll.
Ich habe folgendes im Ablauf stehen
'Störmeldungen (1)
x = InStr(y + 1, zaehler1, " ")
stoer = Mid(zaehler1, y, x - y)
If stoer > 0 Then
If stoer1fangschaltung = 0 Then stoer1fangschaltung = stoer
End If
stoer1fang.Text = stoer1fangschaltung
y = x
If stoer And 1 Then
stoermeldung1(9).BackColor = &HC0&
stoermeldung1(9).ForeColor = &H80000012
Else
stoermeldung1(9).BackColor = &H80000000
stoermeldung1(9).ForeColor = &H8000000C
End If
If stoer And 2 Then
stoermeldung2(8).BackColor = &HC0&
stoermeldung2(8).ForeColor = &H80000012
Else
stoermeldung2(8).BackColor = &H80000000
stoermeldung2(8).ForeColor = &H8000000C
End If
Es folgen noch weitere Störarten.
Die Störmeldung wird visuell angezeigt, im direkten Anschluss an die jeweilige Störmeldung soll dann eine E-mail mit dem jeweilgen Inhalt verschickt werden.
Wie kann man den oben genannten Beispielcode sinnvoll modifizieren und an die Dtörmeldung knüpfen?
Danke
christian
Sub Sende(strSubject As String, strMeldetext As String, strVersender As String, _
Optional strAttachment As String = "")
Dim olApp, Mail As Object
Dim objNachrich As Object
Set olApp = CreateObject("Outlook.Application")
Set objNachrich = olApp.CreateItem(0)
Set Mail = objNachrich
Mail.To = "email@spammail.com" 'Hier die Empfänger E-Mail-Adresse eintragen
Mail.cc = "2-you@gmx.ch" 'Hier die Kopie Empfänger E-Mail-Adresse eintragen oder ""
Mail.Body = "Hallo Herr XYZ," & Chr(10) & Chr(10) _
& strMeldetext & Chr(10) & Chr(10) _
& "Gruß" & Chr(10) _
& strVersender & Chr(10) & Chr(10)
Mail.Subject = strSubject
If strAttachment "" Then
Mail.Attachments.Add strAttachment
End If
Mail.Display
End Sub
Sub aatest()
Dim strMailSubject As String, strMailtext As String, strMailVersender As String
Dim varVersand
'Störmeldungen (1)
x = InStr(y + 1, zaehler1, " ")
stoer = Mid(zaehler1, y, x - y)
If stoer > 0 Then
If stoer1fangschaltung = 0 Then stoer1fangschaltung = stoer
End If
stoer1fang.Text = stoer1fangschaltung
y = x
'Störmelde-Text-Teile für E-Mail vorbereiten
strMailSubject = "STÖRMELDUNG: "
strMailtext = "wir haben eine System-Störung." & Chr$(10) _
& "Datum: " & Format(Date, "DD.MM.YYYY") & Chr$(10) _
& "Uhrzeit: " & Format(Time, "hh.mm.ss") & Chr$(10)
If stoer And 1 Then
stoermeldung1(9).BackColor = &HC0&
stoermeldung1(9).ForeColor = &H80000012
'E-mail-text(e) erweitern
strMailSubject = strMailSubject & "System 1"
strMailtext = strMailtext & stoermeldung1(9) & Chr$(10)
Else
stoermeldung1(9).BackColor = &H80000000
stoermeldung1(9).ForeColor = &H8000000C
End If
If stoer And 2 Then
stoermeldung2(8).BackColor = &HC0&
stoermeldung2(8).ForeColor = &H80000012
'E-mail-text(e) erweitern
strMailSubject = strMailSubject & "System 2"
strMailtext = strMailtext & stoermeldung1(8) & Chr$(10)
Else
stoermeldung2(8).BackColor = &H80000000
stoermeldung2(8).ForeColor = &H8000000C
End If
'Eingabe Versender-Name und E-Mail-Senden
Versender:
varVersand = InputBox(Prompt:="Bitte geben sie ihren Namen ein.", _
Title:="E-Mail-Versand Störmeldung", _
Default:=Application.UserName)
If varVersand = "" Then
If MsgBox(Prompt:="Wollen sie die Störmeldung wirklich nicht senden?", _
Buttons:=vbOKCancel + vbQuestion, _
Title:="E-Mail-Versand Störmeldung") = vbOK Then
Else
GoTo Versender
End If
Else
strMailVersender = varVersand
ActiveWorkbook.Save
'Email-Versand, Falls ohne Dateianhang, dann diesen optionalen Parameter weglassen
Call Sende(strSubject:=strMailSubject, _
strMeldetext:=strMailtext, _
strVersender:=strMailVersender, _
strAttachment:=ActiveWorkbook.FullName)
End If
End Sub
ich habe noch eine Frage zu folgendem:
'Eingabe Versender-Name und E-Mail-Senden
Versender:
varVersand = InputBox(Prompt:="Bitte geben sie ihren Namen ein.", _
Title:="E-Mail-Versand Störmeldung", _
Default:=Application.UserName)
If varVersand = "" Then
If MsgBox(Prompt:="Wollen sie die Störmeldung wirklich nicht senden?", _
Buttons:=vbOKCancel + vbQuestion, _
Title:="E-Mail-Versand Störmeldung") = vbOK Then
Else
GoTo Versender
End If
Else
strMailVersender = varVersand
ActiveWorkbook.Save
'Email-Versand, Falls ohne Dateianhang, dann diesen optionalen Parameter weglassen
Call Sende(strSubject:=strMailSubject, _
strMeldetext:=strMailtext, _
strVersender:=strMailVersender, _
strAttachment:=ActiveWorkbook.FullName)
End If
End Sub
Soweit ich das erkennen kann, erwartet er hierbei eine Reaktion von einem Bediener, da habe ich vielleicht etaws falsch erklärt.
Das System soll eine Nachricht automatisch versenden, so dass in jedem Fall eine Information über die Störung erfolgt.
Vielleicht kann mir da noch jemand Hilfe leisten.
christian