Kontakte in Öffentliche Ordner lesen
In meiner Anwendung muss ich die Firmenkontakte aus Outlook importieren, diese liegen allerdings in Unterordnern in den Öffentlichen Ordnern. Wie komme ich nun da ran?
Ich habe bisher versucht, die ganzen Ordner als csv zu exportieren und dann via Jedi wieder einzulesen, allerdings fliegt mir die Jedi Komponente immer ab (Zuviele Spalten oder einfach 'Fehler in Kopfdaten', was vielsagend ist). Nun habe ich schon diverse Lösungen hier im Forum gesucht, diese funktionieren auch recht gut, allerdings nur mit dem 'Kontakte' Ordner, den ich im persönlichen Outlook habe. Ich benötige aber die Ordner in den 'Öffentlichen Ordner'n, da dort Firmenweit alle Kontakte abgelegt werden. So wie ich das sehe, brauche ich folgende Schritte: - Outlook verbindung herstellen -> erledigt - Ordnername der 'Öffentlichen Ordner' herausfinden -> ??? [NameSpace.GetDefaultFolder(???)] - Unterordner mit Namen finden -> ??? - Auslesen der Kontakte -> sollte mit 'Contacts.Item...' funktionieren (aus den Beispielen hier) - Outlook schließen -> erledgt mit 'Outlook := UnAssigned;' Wäre super, wenn mir hierbei einer weiterhelfen könnte. Auch eine Lösung bezüglich des fehlgeschlagenen csv imports mit jedi (TJvCsvDataSet aus JVCL320CompleteJCL197-Build2172) bringt mich weiter, es muss nicht unbedingt mit MAPI gehen. |
Re: Kontakte in Öffentliche Ordner lesen
|
Re: Kontakte in Öffentliche Ordner lesen
Hi,
hier mal etwas VBA, vielleicht hilft es Dir ja. Denn der Export über CSV ist wegen der vielen GUIDs (EntryID etc.) nicht sonderlich praktikabel. Problem hatte ich auch schon :-)
Code:
Wenn Du dann noch dem Objekt "c" im Beispiel oben das jeweilig aktuelle Contact Item zuweist, kannst Du bequem auf die Eigenschaften der Objekte zugreifen, z.B. mit
Dim ol As Outlook.Application
Dim ns As Outlook.NameSpace Dim pub As MAPIFolder Dim c As Outlook.ContactItem Set ol = CreateObject("Outlook.Application") Set ns = ol.GetNamespace("MAPI") Set pub = ns.Folders("Öffentliche Ordner").Folders("Alle Öffentlichen Ordner").Folders("Firmenkontakte") MsgBox "Elemente: " & pub.Folders(1).Items.Count MsgBox "Erster Eintrag: " & pub.Folders(1).Items(1).Subject
Delphi-Quellcode:
Schau Dir ansonsten mal http://www.outlookcode.com/d/code/getfolder.htm an. Eine VBA Funktion zum Auswählen eines Folders. Ich mache es übrigens oft so, dass ich erst in VBA den Code ans laufen bekomme bevor ich ihn nach Delphi portiere. Klappt oft, aber nicht immer ohne Klimmzüge (z.B. für FOR EACH).
sFirma:= c.CompanyName
sEmail:= c.Email1Address sStreet:=c.BusinessAddressStreet sPLZ:=c.BusinessAddressPostalCode sCity:=c.BusinessAddressCity Viele Grüße und Erfolg Timo |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz