Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Bei Microsoft Outlook den öffentlichen Ordner auslesen (https://www.delphipraxis.net/101082-bei-microsoft-outlook-den-oeffentlichen-ordner-auslesen.html)

niko022 8. Okt 2007 09:50


Bei Microsoft Outlook den öffentlichen Ordner auslesen
 
Hallo,
ich hätte eine Frage.

Wie kann ich unter Microsoft Outlook die Adressen unter dem öffentlichen Ordner auslesen? Habe hier im Forum zwar schon einige Docus gefunden, aber ich hänge an dem Problem das Verzeichnis des öffentlichen Ordners
auszuwählen. Dazu habe ich hier leider nichts gefunden.

Hier mein Code. Wenn ich den Standardcontainer meiner eigene Contacte (olFolderContacts) auslese funktioniert es
einwandfrei. Habe es im Quellcode ausdokumentiert. Ich möchte aber einen anderen Ordner auswählen können. Den
öffentlichen Ordner der für alle User zur Verfügung steht. Die Zeile direkt darunter. Leider bringt er mir hier einen Fehler (Operator oder Semikolon fehlt). Kann den Quellcode nicht compilieren.

Was paßt dort mit der Syntax nicht? Muß wie ich gesehen habe eigentlich mit .Folders funktionieren, aber
irgendwie geht es nicht. Muß ich den Folder irgendwie anderst auswählen?

Delphi-Quellcode:

procedure TForm1.Button2Click(Sender: TObject);
var
  aNameSpace  : NameSpace;
  pub         : MAPIFolder;
  aContactItem : ContactItem;
  iCnt        : Integer;
  strOpen, strAOpen, strAdressen : String;
begin
  strOpen := 'Öffentlicher Ordner';
  strAOpen := 'Alle Öffentlichen Ordner';
  strAdressen := 'Adressen';

  OutlookApplication1.Connect;
  aNameSpace := OutlookApplication1.GetNamespace('MAPI');

  //pub := aNameSpace.GetDefaultFolder(olFolderContacts);
  pub := aNameSpace.Folders(strOpen).Folders(strAOpen).Folders(strAdressen); // <= Operator oder Semikolon fehlt.

  for iCnt := 1 to pub.Items.Count do
    begin
      aContactItem := pub.Items.Item(iCnt) as ContactItem;
      ListBox1.Items.Add(Format('%s : %s', [aContactItem.FirstName,
                         aContactItem.Email1Address]));
    end;
  OutlookApplication1.Disconnect;
end;
würde mich über jede Hilfe freuen. Vielleicht schwirt irgendwo eine Doku rum, wie man Folder auswählen kann oder es gibt jemanden der so was ähnliches schon mal in Delphi gemacht hat.

Danke.

f.siebler 8. Okt 2007 10:08

Re: Bei Microsoft Outlook den öffentlichen Ordner auslesen
 
Moin,

Delphi-Quellcode:
  pub := aNameSpace.Folders(strOpen).Folders(strAOpen).Folders(strAdressen); // <= Operator oder Semikolon
macht irgendwie wenig Sinn. Versuch es doch mal mit einzel schritten... :-)
Und einfach erst mal den ersten Ordner öffnen, und dann mit unterordnern weiter versuchen.
Und dabei bitte auch bedenken, dass es sich hierbei ja um Exchange handelt. Und bei engl. Nutzern die Ordner anders heißen...

niko022 8. Okt 2007 10:12

Re: Bei Microsoft Outlook den öffentlichen Ordner auslesen
 
Vielen Dank ertmal für die schnelle Rückmeldung.

Gibt es dort evtl. ein Beispiel hier im Forum bzw. eine Doku? Ich habe vorher schon mal versucht auf
einen einzelnen Ordner zuzugreifen, aber da hat er mir den selben Fehler geworfen.

niko022 8. Okt 2007 10:47

Re: Bei Microsoft Outlook den öffentlichen Ordner auslesen
 
Ich bin einen Schritt weiter gekommen. Falls es jemanden interessiert oder er dies auch benötigt.

Mit

Delphi-Quellcode:

pub := OutlookApplication1.ActiveExplorer.CurrentFolder.Folders.Item(strAdressen);
kann man einen Ordner im Outlook Explorer auswählen. Wie man innerhalb des Baums wechselt weis ich jetzt auch
noch nicht.

Danke auf jedem Fall soweit.

niko022 8. Okt 2007 14:24

Re: Bei Microsoft Outlook den öffentlichen Ordner auslesen
 
Weis jemand wie man Verteilerlisten überspringen kann? Dort bricht er beim einlesen bei mir ab.
Die Kontaktdaten ließt er einwandfrei mit dem letzten geposteten Befehl ein.

Vielen Dank.

niko022 9. Okt 2007 07:40

Re: Bei Microsoft Outlook den öffentlichen Ordner auslesen
 
Weis jemand wie man innerhalb des Microsoft Outlook Explorer Verzeichnis auswählen kann.

Ich habe das erste Element (Verzeichnis) des Outlook Explorers auswählen können.


Delphi-Quellcode:
OutlookApplication1.ActiveExplorer.CurrentFolder.Folders.GetFirst;
Danach durchlaufe ich eine Schleife und versuch das nächste Element (Verzeichnis)zu selektieren.

Delphi-Quellcode:
OutlookApplication1.ActiveExplorer.CurrentFolder.Folders.GetNext;
Er findet dort aber keine Kontakt obwohl dort Kontakte vorhanden sind.
Er nimmt nur das erste Verzeichnis bei GetFirst ließt dort alle Kontakt aus, aber bei GetNext
springt er nicht ins nächste Verzeichnis.

Vielleicht weis jemand Rat.
Vielen Dank

ManuelR 21. Aug 2009 20:17

Re: Bei Microsoft Outlook den öffentlichen Ordner auslesen
 
Hallo

gibt es eigentlich hier neue Erkenntnisse wie man an die Adressen in den öffentlichen Ordern kommt ? Die lokalen sind
kein Problem. Kenn' mich mit dem Exchange-Server überhaupt nicht aus.



Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:06 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