Einzelnen Beitrag anzeigen

Benutzerbild von ogiesen
ogiesen

Registriert seit: 25. Okt 2004
Ort: Delmenhorst
43 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: Delphi und Outlook als Add-In

  Alt 8. Nov 2012, 12:27
Hallo!

Ich möchte gerne ein Add-In für Outlook in Delphi 2007 schreiben. Entsprechende Funktionen unter Delphi habe ich gefunden und ein Beispielprogramm erfolgreich compiliert und eingebunden. Soweit so gut. Allerdings erschlagen mich die Funktionen, Methoden, Klassen unter Interfaces.
Ich möchte gerne eine Mail, die unter Outlook geschrieben wird, nach dem Auslösen von "Senden" abfangen und die eingegebenen Daten abfangen (Empfänger, Betreff, Body, etc.) um damit weiter zu arbeiten. Das gleiche auch mit empfangenen Mails.
Hat jemand damit schon Erfahrung und so ein Ähnliches Problem gelöst. Welche Methoden / Klassen muss ich dafür benutzen, um jeweils den Inhalt einer Mail beim Senden und Empfangen abzugreifen.

Stephan
Bei ausgehenden Nachrichten, wäre wichtig, ob Du diese vor oder nach dem eigentlichen Senden abfangen willst. Je nach dem bietet sich entweder das ItemSend-Event des Application-Objektes an oder das ItemAdd-Event des "Gesendete Elemente"-Ordners (bzw. dessen Items-Collection).

Für eingehende Nachrichten sieht auf den ersten Blick das NewMailEx-Event (Application-Objekt) am vielversprechendsten aus. Mit Letzterem habe ich selbst allerdings noch keine praktischen Erfahrungen. Laut Dokumentation scheint der Umgang damit vergleichsweise umständlich sein, da Du statt einer einfachen Referenz auf das neue Mail Item eine kommaseparierte Liste von EntryIDs übergeben bekommst. Außerdem wird dieses Event nur ausgelöst, wenn der verwendete Mailkontotyp auch Eingangsbenachrichtigungen unterstützt, was wohl nicht selbsverständlich zu sein scheint.

Möglicherweise ist es auch hier einfacher, mit dem ItemAdd-Event zu arbeiten, diesmal mit dem des Posteingangsordners. Allerdings kannst Du damit nicht unterscheiden, ob eine Nachricht tatsächlich durch einen Mailabruf von außen empfangen wurde, oder ob sie z.B. per Drag&Drop dort abgelegt wurde.

In jedem Fall solltest Du Dir die Shareware OutlookSpy einmal ansehen. Damit kannst Du nach Herzenlust am "lebenden Objekt" im Outlook Object Model sowie verschiedenen anderen relevanten APIs herumsuchen und auch direkt live damit interagieren (d.h. Methoden aufrufen, Events überwachen, Eigenschaften ändern, etc.). Ohne dieses Tool ist Outlook-Programmierung für mich mittlerweile unvorstellbar.

Viel Erfolg!

Grüße,

Oliver
Oliver Giesen

People assume that time is a strict progression of cause and effect, but *actually* from a non-linear, non-subjective viewpoint - it's more like a big ball of wibbly-wobbly... timey-wimey... stuff.
The Doctor
  Mit Zitat antworten Zitat