Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Besitzt Visual Basic 6.0 ein E-mail-Interface ????

Besitzt Visual Basic 6.0 ein E-mail-Interface ?
20.05.2008 13:26:08
christian
Hallo,
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.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Besitzt Visual Basic 6.0 ein E-mail-Interface ?
20.05.2008 21:29:00
fcs
Hallo Christian,
ein eigenständiges Interface hat VBA nicht. Du kannst aber von VBA aus das auf dem Rechner vorhandene E-mail-Programm ansteuern und eine E-Mail verschicken. Bei den E-mail-Programmen gibt kleine Variationen bei den zu übergebenden Parametern. Beispiele findest du im Archiv.
Alternativ besteht die Möglichkeit, wenn Office entsprechend eingerichtet ist eine Arbeitsmappe mit der SendMail-methode zu verschicken.
Dies erfordert jedoch noch einen User-Eingriff, da der Versand nicht automatisch erfolgt. Die Adresse, der Betreff und die Arbeitsmappe als Anhang werden als neue E-Mail angezeigt.
Gruß
Franz

Anzeige
AW: Besitzt Visual Basic 6.0 ein E-mail-Interface ?
21.05.2008 11:05:00
christian
Hallo Franz,
ich hab im archiv als Beispiel folgendes gefunden:

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

Anzeige
AW: Besitzt Visual Basic 6.0 ein E-mail-Interface ?
21.05.2008 12:41:30
fcs
Hallo Christian,
ich hab mit diesen Funktionalitäten nicht so viel Erfahrung.
Du muss in der Abarbeitung der verschiedenen Störmeldungen den zu sendenden Haupttext und ggf. auch den Betreff schon mit erzeugen, dass heißt in Variablen sammeln.
Diese Variablen werden dann zusammen mit dem Versender-Namen an die Sendeprozedur übergeben.
Dazu hab ich die Prozeduren mal als Beispiel etwas angepasst.
Gruß
Franz

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


Anzeige
AW: Besitzt Visual Basic 6.0 ein E-mail-Interface ?
21.05.2008 15:40:59
christian
Hallo,
ob es funktioniert kann ich erst frühestens nächste woche probieren.
ich geb dann hier ne rückmeldung.
Aber schon mal danke für mühe.
christian

AW: Besitzt Visual Basic 6.0 ein E-mail-Interface ?
26.05.2008 13:41:00
christian
Hallo,

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

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige