VBScript zum E-Mail versenden

Wer bei bestimmten Ereignissen des Systems per E-Mail benachrichtigt werden will hat unter Windows kein passendes Werkzeug zur Verfügung. Entweder installiert man sich hierzu ein Tool von einem Drittanbieter oder man programmiert sich ein einfaches VBScript, dass E-Mails mit Hilfe der CDO verschickt. Hierbei ist auch die Authentifizierung am Postausgangsserver kein Problem.

VBScript zum E-Mail versenden

option explicit
 
Dim oEmail, oConf
Dim authuser, authpass, smtpserver
Dim recipient,sender,subject,message
 
authuser="foo"
authpass="bla"
smtpserver="myservername"
 
recipient="[email protected]"
sender="[email protected]"
subject="Test E-Mail"
message="My Test E-Mail"
 
Set oEmail = CreateObject("CDO.Message")
Set oConf = CreateObject("CDO.Configuration")
 
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpserver
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = authuser
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = authpass
oConf.Fields.Update
 
oEmail.Configuration = oConf
oEmail.To = recipient
oEmail.From = sender
oEmail.ReplyTo = sender
oEmail.Subject = subject 
oEmail.HTMLBody = message
 
oEmail.Send
 
Set oConf = Nothing
Set oEmail = Nothing

Funktions- und Konfigurationsbeschreibung

Allgemeiner Teil

Im allgemeinen Teil werden die Variablen deklariert und mit option explicit fordern wir einen Fehler bei undeklarierten Variablen an.

option explicit
 
Dim oEmail, oConf
Dim authuser, authpass, smtpserver
Dim recipient,sender,subject,message

Konfiguration

Die Konfigurationsteil untergliedert sich in zwei Bereiche. Der erste Bereich bezieht sich auf den Server. Der zweite Bereich bezieht sich auf die E-Mail.

authuser="foo"
authpass="bla"
smtpserver="myservername"

smtpserver ist der ausgehende E-Mail Server. Damit sich der Client am Server authentifizieren kann benötigen wir noch den Benutzernamen für die Anmeldung (authuser) und das passende Passwort (authpass).
Im E-Mail Konfigurationsbereich werden die für E-Mail typischen Parameter Empfänger, Absender, Betreff und Nachricht definiert.

recipient="[email protected]"
sender="[email protected]"
subject="Test E-Mail"
message="My Test E-Mail"

Hauptteil

Servereinstellungen

Als erstes erzeugt man die nötigen CDO Objekte Message(oEmail) und Configuration(oConf).

Set oEmail = CreateObject("CDO.Message")
Set oConf = CreateObject("CDO.Configuration")

Danach konfigurieren wir das CDO Objekt Config(oConf) nach unseren Anforderungen.

oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpserver

Mit sendusing 2 wird definiert, dass die E-Mail an den Port gesendet werden soll. Der Port und Server werden mit smtpserverport und smtpserver angegeben.
Als nächstes wird die Authentifizierung durch setzten der 1 aktiviert. Wenn keine Authentifizierung benötigt wird, können auch die drei Zeilen weggelassen werden.

oConf.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = authuser
oConf.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = authpass

Danach aktiviert man die Änderungen.

oConf.Fields.Update

E-Mail Einstellungen

Als erstes werden die Servereinstellungen der E-Mail zugewiesen. Danach werden die für eine E-Mail benötigten Felder mit Werten gefüllt.

oEmail.Configuration = oConf
oEmail.To = recipient
oEmail.From = sender
oEmail.ReplyTo = sender
oEmail.Subject = subject 
oEmail.HTMLBody = message

Zuguterletzt kann die E-Mail gesendet werden.

oEmail.Send

3 Gedanken zu „VBScript zum E-Mail versenden“

  1. moin,
    und wie kann man das Script erweitern wenn man ein Mail Cluster hat, und der Service wechselseitig läuft? Man müsste vorher prüfen, auf welchem der Server der Port 25 läuft.
    Danke für den kleinen Tipp

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.