Scripte schreiben mit VBScript

Selber programmieren - kein Problem

Sowohl Visual Basic Script als auch JavaScript stehen nicht nur für die Programmierung von Webseiten zur Verfügung: Man kann auch Programme damit schreiben, die täglich anfallende Arbeiten auf einem ganz normalen Windows PC-übernehmen. Zum Beispiel das versenden von eMail per Kommandozeile ist eine Problemstellung, die sich mit VBScript elegant und schnell lösen läßt. Wie das geht, erklärt der folgende Beitrag.

Sendmail mit Visual Basic Script
Oft möchte man auf die schnelle eine eMail verschicken - dazu aber nicht erst Outlook oder sonst einen eMail-Client starten: Einfach auf der Kommandozeile Sendmail hallo@wo.ext 'Gehen wir essen?' eintippen - das wäre schön.

So eine Funktion hat auch noch andere Vorteile: So kann man sich zum Beispiel von Batch-Jobs eMails schicken lassen, wenn diese Ihre Aufgaben erfüllt haben - oder nicht erfüllen konnten - oder man verwendet die Funktion um sich selbst Statusberichte von Server schicken zu lassen, die irgendwo unbeaufsichtigt ihre Aufgaben erfüllen.

Genau dies tut das kleine VB Script, das im folgenden entworfen wird.
Dazu muß gesagt werden, das VBScript selbst nicht sonderlich viele Dinge erledingen kann - es verwendet statt dessen im System vorhandene Objekte, die die gewünschten Aufgaben erfüllen können. Solche Objekte existieren eine ganze Menge: So kann zum Beispiel das komplette Office-Paket als ein solches betrachtet weden, und auch Outlook kann - wie viele Anwender im Zuge des I-Love-You Virus erfahren haben - per Scripting automatisch gesteuert werden.

Darüber hinaus kommt Windows selbst auch mit einer Reihe an Objekte, die der Scripting Engine direkt verwenden kann: Dazu gehören solche zum Zugriff auf das Dateisystem - damit kann man Dateien erzeugen, lesen und schreiben - und auch ein Objekt das den Zugriff auf die Registry zuläßt.

Im hier vorliegenden Fall soll der SMTP Dienst von Windows 2000 verwendet werden: Dieser Dienst kann ebenfalls als Objekt vom Scripting Engine aus verwendet werden und dient der zustellung von eMail: Dieser Dienst ist von Haus aus bei allen Windows 2000 Versionen verfügbar - wenn Sie Windows 2000 gar nicht einsetzen ist das aber auch kein Problem: Die Grundzüge für das Programmieren von Scripten mit VBScript werden im folgenden trotzdem klar genug: Nur das fertige Programm können Sie eben nicht benutzen.

Genug der Vorrede: Hier der Sprung ins kalte Wasser.
Das fertige Programm sieht so aus - was die einzelnen Zeilen bedeuten, wird dann Schritt für Schritt erläutert.
Option Explicit
Dim ArgObj
Set ArgObj = WScript.Arguments
if ArgObj.Count <> 3 then
  DisplayHelpMessage
  WScript.Quit
end if  

Dim target, subject, body, from
target = ArgObj.Item( 0)
subject = ArgObj.Item( 1)
body = ArgObj.Item( 2)
from = "IhreEmail@absender.de"

SendMail target, from, subject, body

function SendMail( strTo, strFrom, strSubject, strBody)

  dim oMsg
  set oMsg = CreateObject("CDO.Message")
  oMsg.To = strTo
  oMsg.From = strFrom
  oMsg.Subject = strSubject
  oMsg.TextBody = strBody
  oMsg.Send

  WScript.Echo "Mail von " & strFrom & " an " & strTo & " verschickt.."
  set oMsg = Nothing

end function

sub DisplayHelpMessage()
  WScript.Echo 
  WScript.Echo "Usage: sendmail To Subject Body"
  WScript.Echo "... Subject und Body in doppelten Hochhaken"
end sub
 

Artikel kommentieren