![]() |
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
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 23:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz