Daten aus Outlook, ist MAPI das richtige dafür?
-
Hi Leute,
ich muss an die Objekte (Termine, Aufgaben, Notizen und später mal auch an E-Mails) von Outlook ( und Exchange) dran kommen und ggf. auch diese Objekte in Outlook erstellen. (Das heißt ich muss die Infos auslesen und teilweise auch Termine, Aufgaben etc. anlegen)
Wenn ich die Daten habe, möchte ich die an andere Klassen übergeben und weiterverarbeiten. (Das ist aber nicht das Problem!)
Nach einigen Stunden die ich mit der Suche zu dem Thema verbracht habe, bin ich jetzt der Meinung nach das mit MAPI zu erledigen sein müsste, oder?
Leider finde ich keine wirklich gute Referenz bzw. Dokumentation zu MAPI.
Ein Zugriff über COM etc. ist wegen der schlechten Performence ausgeschlossen. (laut der Recherche im Internet)
Kann mir jemand eine gute Referenz dazu zeigen (Link), bzw. sagen ob die MAPI das richtige dafür ist.
Bitte um eure Hilfe
Gruß
Rudi
-
Rudi G schrieb:
Kann mir jemand eine gute Referenz dazu zeigen (Link), bzw. sagen ob die MAPI das richtige dafür ist.
Bitte um eure Hilfe
Ergänzung: Es geht mir Hautpsächlich um die Termine/Aufgaben/Adressen
Gruß
Rudi
-
MAPI kann was du möchtest. Aber, schau dir mal das Beispiel an: http://msdn.microsoft.com/de-de/library/cc979231(en-us).aspx . Ca 150 Zeilen C++ Code um eine Email anzulegen.
Kannst du dein Projekt nicht als VBA Makro schreiben? Das sollte wesentlich schneller von der Hand gehen, da der Zugriff auf die Folder schon schön gewrapped ist.
-
Headhunter schrieb:
MAPI kann was du möchtest. Aber, schau dir mal das Beispiel an: http://msdn.microsoft.com/de-de/library/cc979231(en-us).aspx . Ca 150 Zeilen C++ Code um eine Email anzulegen.
Hi,
vielen Dank fü diese Info. Ich möchte eine Outlook-Syncronisation mit einem eigenem Programm machen und da brauche ich die Daten "extern".
Diese vielen Zeilen Code werde ich dann in Kauf nehmen müssen.
Headhunter schrieb:
Kannst du dein Projekt nicht als VBA Makro schreiben? Das sollte wesentlich schneller von der Hand gehen, da der Zugriff auf die Folder schon schön gewrapped ist.
Nein, leider nicht.
Auch schneller als über MAPI?
Ist MAPI die unterste Ebene bzw. die schnellste Möglichkeit, mit der auf die E-Mails, Aufgaben, Termine, Adressen, etc.. zugreifen kann? (ich meine um von außerhalb, ohne Office/VBA, an diese Informationen dran zu kommen!)
Vielen Dank für deine Antwort
Gruß
Rudi
-
In welchen Kontext du MAPI genau einordnest, kann ich dir nicht sagen. Iirc ist in der VBA Api jeder Outlookorder ein MAPI Folder- egal ob mit Mails, Kontakten oder Terminen darin.
Zum Thema Geschwindigkeit von VBA: Bescheiden... habe ich gestern nochmal gemerkt, einen Preis für Performance gewinnt man mit der Sprache nicht.
Ich weiß nicht, in welcher Programmiersprache du arbeitest, aber sollte .NET nicht ein paar schön gewrappte Zugriffsklassen für Office/Outlook haben?
-
Headhunter schrieb:
In welchen Kontext du MAPI genau einordnest, kann ich dir nicht sagen. Iirc ist in der VBA Api jeder Outlookorder ein MAPI Folder- egal ob mit Mails, Kontakten oder Terminen darin.
Ok, super genauso habe ich mir das auch vorgestellt. (Aufgaben gehören aber auch dazu?!)
Kannst du bitte auch vielleicht etwas zu "Outlook Automation" sagen, ist es dasselbe und nur ein anderer Begriff oder ist der zugriff darüber ganz anders (Geschwindigkeit unterschiede...)
Headhunter schrieb:
Zum Thema Geschwindigkeit von VBA: Bescheiden... habe ich gestern nochmal gemerkt, einen Preis für Performance gewinnt man mit der Sprache nicht.
VBA ist nicht wirklich eine Möglichkeit, nach den Vorgaben die ich bekomme, aber trotzdem vielen Dank für diese Informationen. Für Zukünftige Projekte sicherlich sehr sinnvoll/hilfreich das zu wissen.
Headhunter schrieb:
Ich weiß nicht, in welcher Programmiersprache du arbeitest, aber sollte .NET nicht ein paar schön gewrappte Zugriffsklassen für Office/Outlook haben?
C++ mit den Standard Bibliotheken und dem Qt-Framework.
Den Zugriff auf die MAPI-Funktionen würde ich dann in C++ als Interfaces-Klassen schreiben, sodass ich die leicht aus dem Qt-Projekt ansprechen kann. Qt bietet leider keine Klassen für den Zugriff auf MAPI/Outlook...
Gruß
Rudi
-
Mit .NET / Managed C++ sollte der Zugriff auf Outlook einfacher sein. Es gibt für alle Officekomponenten entsprechende Assemblies, die die Programmierung im Vergleich zu Com/reinem C++ sehr vereinfachen sollten.
Noch ne schöne Alternative: Schreibe deinen Synchronisierer als DLL. Die kannst du dann in Outlook per VBA laden und so per Scriptsprache die Integration deiner App in Outlook sehr einfach und komfortabel machen.
Und ja, auch Aufgaben können in Mapifolders enthalten sein.
-
Headhunter schrieb:
Mit .NET / Managed C++ sollte der Zugriff auf Outlook einfacher sein. Es gibt für alle Officekomponenten entsprechende Assemblies, die die Programmierung im Vergleich zu Com/reinem C++ sehr vereinfachen sollten.
Das glaube ich auch, allerdings sind die Vorgaben so, dass das Modul keine Abhängigkeiten außer Standard + Qt-Bibliotheken haben soll/darf.
Headhunter schrieb:
Noch ne schöne Alternative: Schreibe deinen Synchronisierer als DLL. Die kannst du dann in Outlook per VBA laden und so per Scriptsprache die Integration deiner App in Outlook sehr einfach und komfortabel machen.
Ich muss mal genauer nachhören aber ich glaube das mir nicht gestattet sein wird, irgendwelche VBA-Scripte in Outlook auf Fremsystemen einzuspielen bzw. auszuführen. Vorallem muss ich dann noch die Makrosicherheitsmeldungen berücksichtigen etc...
Headhunter schrieb:
Und ja, auch Aufgaben können in Mapifolders enthalten sein.
Sorry wenn ich einige Fragen sehr oft wiederhole, aber das sind meine Vorraussetzungen und deswegen hacke ich lieber mehr als weniger nach.
KÖNNEN oder SIND Aufgaben/Termine/Adressen/E-Mails in Mapifolders enhalten, gibt es Ausnahmen wann welches Objekt nicht in diesen Mapifoldern enthalten sein können?
Vielen Lieben Dank für deine Hilfe.
Gruß
Rudi
-
Du hast Recht - Makros unterstützen kein vernünftiges Deployment und nur bis Sicherheitsstufe Mittel werden die unsigniert (aber mit Warnung) ausgeführt.
Der Charm von C++ .NET in diesem Szenario ist, dass du weiterhin QT nutzen kannst und neben dem ab XP SP2 standardmäßig installiertem .NET2 Frameworks keine weiteren Abhängigkeitne brauchst (evtl. noch von den Assemblies?)
Zu den MAPI Folders: Meinem Verständnis nach kann da alles enthalten sein, was du auch im normalen Outlook sieht. Kann man per VB Script recht einfach selber rausfinden, hier ist was MS dazu schreibt: http://support.microsoft.com/kb/292062