Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Exchange Kontakte (https://www.delphipraxis.net/167694-exchange-kontakte.html)

realAndy 13. Apr 2012 12:08


Exchange Kontakte
 
Hallo,
ich suche nach einer Möglichkeit direkt von einem Exchange Server 2010 aus einem öffentlichen Ordner die Kontakte auszulesen.

Könnt ihr mir sagen, welches hierzu der beste Weg ist?

Bummi 13. Apr 2012 12:30

AW: Exchange Kontakte
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn Du über Ado auf die MAPI zugreifen willst und der Anhang Deinen Vorstellungen entspricht, kann ich den Source hochladen

Jumpy 13. Apr 2012 12:37

AW: Exchange Kontakte
 
Wenn direkt heißt, das Outlook nicht zur Verfügung steht, bleibt noch die Frage, wo dein Programm laufen soll.

Auf dem Exchange Server? Dann wäre ADO eine Möglichkeit.

Irgendwo anders? Dann könnte man WebDav nutzen, was ich in diesem Thread versuche, aber so richtig gut geklappt hat das in Delphi da nicht, weswegen ich das jetzt aus Zeitmangel in C# gemacht habe.

realAndy 13. Apr 2012 12:42

AW: Exchange Kontakte
 
Zitat:

Zitat von Bummi (Beitrag 1161715)
Wenn Du über Ado auf die MAPI zugreifen willst und der Anhang Deinen Vorstellungen entspricht, kann ich den Source hochladen

Danke für die schnelle Antwort.

Ich habe das Programm auch gleich mal getestet.
Auf meinen Mailbox Ordner komme ich auch ohne Probleme. Den Öffentlichen Ordner kann ich allerdings nicht öffnen bzw. gibt es dort nur einen Unterordner "Aufgaben". Alle anderen Unterordner werden mir nicht angezeigt.
Das Programm startet auch immer mit der Fehlermeldung: Sie haben nicht die nötigen Berechtigungen, um das Objekt zu bearbeiten. An welchen Berechtigungen könnte dies liegen?


Den Sourcecode würde ich mir auf jedenfall gerne mal anschauen :)

realAndy 13. Apr 2012 12:46

AW: Exchange Kontakte
 
Zitat:

Zitat von Jumpy (Beitrag 1161717)
Wenn direkt heißt, das Outlook nicht zur Verfügung steht, bleibt noch die Frage, wo dein Programm laufen soll.

Auf dem Exchange Server? Dann wäre ADO eine Möglichkeit.

Irgendwo anders? Dann könnte man WebDav nutzen, was ich in diesem Thread versuche, aber so richtig gut geklappt hat das in Delphi da nicht, weswegen ich das jetzt aus Zeitmangel in C# gemacht habe.

Das Programm soll nicht auf dem Server laufen, sondern auf einem anderen Rechner.
WebDav hab mir zwar schon mal angeschaut, bin damit aber noch nicht so richtig zurechtgekommen.

Bummi 13. Apr 2012 12:51

AW: Exchange Kontakte
 
Liste der Anhänge anzeigen (Anzahl: 1)
Source liegt bei, Du kannst ja mal ein wenig herumspielen

realAndy 13. Apr 2012 12:52

AW: Exchange Kontakte
 
Zitat:

Zitat von Bummi (Beitrag 1161723)
Source liegt bei, Du kannst ja mal ein wenig herumspielen

Danke :)

realAndy 13. Apr 2012 13:24

AW: Exchange Kontakte
 
Zitat:

Zitat von Jumpy (Beitrag 1161717)
Dann könnte man WebDav nutzen, was ich in diesem Thread versuche, aber so richtig gut geklappt hat das in Delphi da nicht, weswegen ich das jetzt aus Zeitmangel in C# gemacht habe.

WebDav sollte man nicht mehr verwenden, so wie ich das hier lese: http://www.msxfaq.de/code/webdav.htm
Kennt sich denn jemand mit WebServices aus und hat darüber schon mal auf den Exchange Server zugegriffen?

Jumpy 13. Apr 2012 14:31

AW: Exchange Kontakte
 
Zitat:

Zitat von realAndy (Beitrag 1161729)
Zitat:

Zitat von Jumpy (Beitrag 1161717)
Dann könnte man WebDav nutzen, was ich in diesem Thread versuche, aber so richtig gut geklappt hat das in Delphi da nicht, weswegen ich das jetzt aus Zeitmangel in C# gemacht habe.

WebDav sollte man nicht mehr verwenden, so wie ich das hier lese: http://www.msxfaq.de/code/webdav.htm

Stimmt. Hatte überlesen, dass du das für den Exchange Server 2010 brauchst. Wir haben hier noch dessen Urgroßvater im Einsatz, daher WebDAV.

Hast du dir schon mal die SDK zu den Webservices angeschaut?

baumina 10. Mai 2012 16:17

AW: Exchange Kontakte
 
Hallo Jumpy,

mir scheint, dass du dich mit einem ähnlichen Problem wie ich herumgeschlagen hast. Deswegen wende ich mich mal direkt an dich.

Meine Aufgabenstellung:
Ich möchte einen Dienst für den Exchange-Server schreiben, der Outlook-Kontakte, die sich in einem bestimmten Ordner befinden mit meiner mysql-Adressdatenbank synchronisiert.

Auf meinem PC konnte ich problemlos via MAPI schon mal die Outlook-Kontakte füllen. MAPI benötigt allerdings sowohl eine Windowsanmeldung, als auch ein konfiguriertes Outlook. Deswegen ist dieser Lösungsweg für einen Server-Dienst wohl nicht geeignet.

Meine Recherchen bezüglich ADO, LDAP, ActiveDirectory waren bislang nicht von viel Erfolg gekrönt, das das für mich auch noch irgendwie ziemlich böhmische Dörfer sind (bin kein Admin, nur der dumme Programmierer).

Hast Du oder jemand anderes hier mir einen Codefetzen, mit dem ich via ADOConnection und Query an die Outlook-Kontakte auf dem Exchange-Server komme?

Danke
baumina

Jumpy 11. Mai 2012 08:54

AW: Exchange Kontakte
 
Soll dein Dienst auf dem Exchange-Server laufen oder auf einem anderen Server im Netz? Und welche Exchange Version, da wie ja schon oben steht, die von mir verwendete WebDAV-Schnittstelle depreciated ist.

Falls direkt auf dem ExchangeServer, könntest du OLEDB mit ADO zusammen nutzen.
[Edit:] Wobei ich gerade gelesen hab, dass das auch nur noch bis ExS 2007 funzt.

Falls du das noch nicht gesehen hast, hier ist eine nette Grafik, welche Schnittstellen es für Exchange so alles gibt.

baumina 11. Mai 2012 10:53

AW: Exchange Kontakte
 
Danke für deine schnelle Antwort.

Der Dienst soll direkt auf einem Exchange-Server (Version ist 2010) laufen. Aber da ich mich an die ganze Geschichte erstmal langsam hintasten muss, würde ich erstmal ein normales Programm auf meinem PC schreiben, bevor das dann mal ein Serverdienst wird.

Mit einer TADOConnection (ConnectionString=Provider='Microsoft.ACE.OLEDB.4. 0; Exchange 4.0; MAPILEVEL=; PROFILE=Outlook; TABLETYPE=0; DATABASE=\;') und einem TADODataSet(CommandText='Select * from Kontakte') konnte ich sogar auf meinem Rechner schon kleine Erfolge erzielen, ohne wirklich genau zu wissen was ich da tue (geh ich damit evtl. wieder übers Outlook?). Wie wäre das mit dem Provider=ADsDSOObject ?

Jedoch hab ich keine Ahnung ob das dann auch auf dem Exchange-Server geht. Du meinst dort komm ich nicht via ADO drauf? Uaaa, ich stocher noch voll im Nebel :cry:.

baumina

Jumpy 11. Mai 2012 12:59

AW: Exchange Kontakte
 
Zitat:

Zitat von baumina (Beitrag 1166051)
Jedoch hab ich keine Ahnung ob das dann auch auf dem Exchange-Server geht. Du meinst dort komm ich nicht via ADO drauf? Uaaa, ich stocher noch voll im Nebel :cry:.

ADO ist ja nur eine Schicht deines Zugriffs. Du gehst ja über
Anwendung->ADO->MAPI
MAPI kommt glaub ich durch Outlook, es gibt aber auch kostenpflichtige MAPI-Komponenten, hab ich damals herausgefunden, find das aber gerade nicht (war es Redemption?), die dann ohne Outlook daher kämen.

Auf dem Server (<=2007) würdest du dann ExOLEDB benutzen, somit:
Anwendung->ADO->OLEDB

Problem ist, du brauchst andere Schnittstellen wenn du direkt auf dem Server bist, als wenn du an einem lokalen PC, oder einem anderen dritten Server dein Prog. laufen lässt. Deswegen bringt das lokale testen wenig, hab ich die Erfahrung gemacht.

Geronimo 11. Mai 2012 22:01

AW: Exchange Kontakte
 
Ich hatte mal die gleiche Aufgabe und das über OLE-Fernsteuerung von Outlook gelöst.
Setzt natürlich voraus, dass Outlook installiert und richtig eingerichtet ist.

Gruss
Geronimo

k0ppki11ah 24. Mai 2012 07:24

AW: Exchange Kontakte
 
Also ich habe eine ähnliche Aufgabenstellung wie baumina.

Es sollen persönliche Adressbücher aus einer eigenen MySQL-DB mit den jeweiligen Exchange-Kontakten der Benutzer abgeglichen werden.

Nach Möglichkeit würde ich den Abgleich gerne automatisiert zentral auf einem anderen Server (nicht dem Exchange) laufen lassen.

Daher wäre in meinem Fall eine Lösung über Outlook etwas unpraktisch. Ich suche eher nach einer Möglichkeit, direkt über den AD-Benutzer auf dessen Exchange-Kontakte zuzugreifen.

Hat vielleicht einer von euch einen Ansatz in welche Richtung ich da marschieren muss?

Ggf. irgendwelche Komponenten (MAPI?), mit denen ich das realisieren könnte?

Für Tips oder Anregungen wäre ich euch sehr dankbar, da ich etwas unter Zeitdruck stehe.

RWarnecke 24. Mai 2012 08:17

AW: Exchange Kontakte
 
Zitat:

Zitat von Jumpy (Beitrag 1166082)
Auf dem Server (<=2007) würdest du dann ExOLEDB benutzen, somit:
Anwendung->ADO->OLEDB

Das wäre doch ein Ansatz für Dich um eventuell auf die Kontakte auf dem Exchange-Server zugreifen zu können.

Jumpy 24. Mai 2012 09:00

AW: Exchange Kontakte
 
Wichtig wäre vielleicht auch die Version des Exchange Servers, da wie ich im laufe meiner Recherchen zu diesem Thema gelernt habe, sind viele der alten Schnittstellen im neusten Exchange Server nicht mehr dabei.

Zitat:

Zitat von RWarnecke (Beitrag 1167845)
Zitat:

Zitat von Jumpy (Beitrag 1166082)
Auf dem Server (<=2007) würdest du dann ExOLEDB benutzen, somit:
Anwendung->ADO->OLEDB

Das wäre doch ein Ansatz für Dich um eventuell auf die Kontakte auf dem Exchange-Server zugreifen zu können.

Wobei das für den Fall funktioniert, dass die Anwendung auf dem Exchange Server läuft. Soll sie auf einem anderen Server laufen wäre je nach Exchange Webdav oder Webservices vllt. eine mögliche Schnittstelle.

k0ppki11ah 24. Mai 2012 09:17

AW: Exchange Kontakte
 
Danke schonmal für die schnelle Antworten.

Also da die Anwendung nicht auf dem Exchange, sondern einem anderen Server laufen soll, wären WebServices wahrscheinlich die richtige Richtung.

Es handelt sich übrigens um einen Ex 2007 auf Basis einen SBS 2008.


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