Office

Voller Zugriff auf Outlook

Outlook-Redemption-DLL im Einsatz

Mit Outlook 98 hat Microsoft zum ersten Mal etwas mehr für die Sicherheit des Mailers getan und über ein Sicherheits-Patch den sog. "Outlook Object Model Guard" implementiert, der Zugriffe von außen auf Outlook-Objekte verhindert. Vor dem Zugriff erscheint zunächst ein Warnhinweis und dann ein Dialog, in dem man angeben kann wie lange der Zugriff gestattet ist.

Entwickelt man nun z.B. in VB oder einer anderen Sprache Programme, die z.B. Outlook-Kontakte auslesen oder über MAPI eMails versenden sollen, so ist diese Sicherheitsfunktion zwar schön, aber extrem lästig für den Anwender.

Es gibt nun zwei Lösungsansätze. In einer Exchange-Umgebung ist es möglich über das Office-ResourceKit das sog. "Outlook Security Features Administrative Package" auf dem Server zu installieren. Nähere Informationen dazu gibt es auf folgenden Seiten:

Nun besitzt aber nicht jeder einen Exchange-Server. Um nun trotzdem gewisse Dinge automatisieren zu können hat Dmitry Streblechenko die sog. Outlook-Redemption-Bibliothek entwickelt, über die man den Zugriff auf die Outlook-Objekte ohne Sicherheitsabfrage hinbekommt.

Outlook Redemption ist eine selbst-registrierende COM-Bibliothek, die die durch das Sicherheits-Patch geblockten Funktionalitäten über das nicht betroffene Extended MAPI abbildet. Der Umgang mit den Redemption-Objekte ist sehr stark an die normale Vorgehensweise angelehnt. Grundlage sind hierbei die Redemption-Objekte wie z.B. SafeMailItem, denen im Code lediglich ein Standard-Outllok-Item zugewiesen wird. Danach hat man über das neue Item Zugriff auf alle Eigenschaften und Methoden des Original-Objekts.

Beispiel:

Public Function SendMail()

   Dim outApp As Outlook.Application
   Dim outMail As Outlook.MailItem
   Dim safMail As SafeMailItem

   Set outApp = New Outlook.Application
   Set outMail = outApp.CreateItem(olMailItem)
   Set safMail = New SafeMailItem

   safMail.Item = outMail

   With safMail
      .Recipients.Add "kristof@zerbit.de"
      .Subject = "Test"
      .Body = "Dies ist ein Test"
      .Send
   End With

   Set safMail = Nothing
   Set outMail = Nothing
   Set outApp = Nothing

End Function

Die entscheidenden Unterschiede zum normalen Zugriff auf Outlook-Objekte sind im Code fett markiert. Es gibt jedoch ein paar Besonderheiten, auf die man achten sollte. So ist die to-Eigenschaft aus welchem Grunde auch immer schreibgeschützt. Man muss in diesem Fall mit der Recipients-Auflistung arbeiten.

Outlook Redemption gibt es in zwei Lizenzvarianten. Die Entwicklerlizenz ist kostenlos und zeigt lediglich bei der Installation einen Herstellerhinweis. Die Vollversion kostet hingegen 199 USD, bietet jedoch zudem ProfMan, eine weitere Bibliothek, mit der man MAPI-Profile manipulieren kann.

kick it on dotnet-kicks.de AddThis 0 wikio-Stimme(n) Trackback-Url...

Verwandte Artikel

Outlook Makro-Zertifizierung

Keine Kommentare bislang...

Dein Kommentar hierzu...


Kommentar-Feed für diesen Beitrag
Gravatare werden unterstützt .:. eMail-Adressen werden nicht veröffentlicht
 

RSS-Feed

Die URL des Standard-Newsfeed von zerbit.de lautet:

http://www.zerbit.de/rssfeed.aspx

Login


 

 

Statistik



kürzlich kommentiert

Artikel 19

  • Datum: 05.04.2005
    Kategorie: Office
    Zugriffe: 5.186
    Kommentare: 0
    Trackbacks: 0

Letzte Beiträge

Kategorien

Buttons & More

Blog-Roll

Banner Piraten-Partei