Outlook VBScript

Sehr viele Aufgaben werden mit Outlook Formularen erledigt. Aber Outlook lässt sich auch per Outlook VBA  bzw. mit VBScript und anderen Programmen automatisieren. Die Nutzung des Outlook COM Objekts ist immer dann interessant, wenn eben Zusatzfunktionen von Outlook genutzt werden sollen, die ein MAPI/CDO nicht zur Verfügung stehen. Umgekehrt sind einige Funktionen in CDO besser gelöst.

Folgender KB-Artikel ist sehr zu empfehlen:
208520 Programming examples für referencing items and folders in Outlook 2000

Outlook auf Exchange 2000/2003 - Not suporter
Ehe Sie nun auf dem Exchange Server ein Outlook installieren, weil das der einzige PC ist, der rund um die uhr läuft, muss die Warnung kommen, dass dies nicht "supported" ist und Probleme der Regelfall sind.. Also Finger weg.
http://blogs.msdn.com/stephen_griffin/archive/2004/07/03/172257.aspx

Exchange 2007 und Outlook 2007 ist erlaubt !
Erst mit Exchange 2007 darf man Outlook 2007 auf dem Server installieren, da Sie sich nicht stören.
http://blogs.msdn.com/dgoldman/archive/2007/02/27/installing-outlook-2007-on-an-exchange-2007-server.aspx

In allen Fälle sollten Sie aber die Outlook "Schutzfunktionen" können, mit denen sich Outlook auch gegen Viren und andere Fremdzugriffe auf wichtige Daten wie z.B. Kontakte oder den Versand von Mails schützt. Siehe Outlook Sicherheitswarnung.

Beispiel 1: Mail senden

Um z.B.: eine Mail  über Outlook zu senden reichen folgende wenige Zeilen als VBScript aus:

Const olByValue = 1
Const olMailItem = 0
   
Dim oOApp
Dim oOMail

Set oOApp = CreateObject("Outlook.Application")
Set oOMail = oOApp.CreateItem(olMailItem)

With oOMail
    .To = "mapitest@ihremaildomain.tld"
    .Subject = "Dies ist der Betreff"
    .Body = "Testnachricht "
    .Attachments.Add "c:\boot.ini", olByValue, 1
    .Send
End With

Beachten Sie dabei aber die Outlook Sicherheitswarnung.

Beispiel 2: Betreff auflisten

Ein zweites einfaches Beispiel soll ihnen zeigen, wie ich aus VBScript einfach die Betreffzeilen von Outlook ausgeben kann:

Set myOlApp = GetObject("Outlook.Application")
Set myFolder= myOlApp.GetNameSpace("MAPI").GetDefaultFolder(6)
WScript.echo "Anzahl der Nachrichten: " & myFolder.Items.count
For Each objmail In myFolder.Items
    WScript.echo objmail.subject
Next

Diese kleine VBScript verbindet sich mit einem bestehenden Outlook und nutzt den Ordner "6" (Posteingang) um dann die Anzahl der Nachrichten und dann den Betreff jeder einzelnen Nachrichten anzuzeigen. Sie können Sich natürlich vorstellen, dass der automatischen Weiterverarbeitung fast keine Grenzen gesetzt sind. Nur wenn Sie wieder in Outlook etwas schreiben oder Senden wollen, wird Outlook Sie wieder mit der Outlook Sicherheitswarnung konfrontieren. Aber per VBScript sind noch viel mehr Dinge möglich.

Skripte der MSXFAQ

In folgenden Skripten habe ich per VBScript das Outlook Objekt Modell genutzt.

Weitere Links