windows - Der beste Weg, um mit PHP auf Exchange zuzugreifen?

Translate

Ich schreibe eine CMS-Anwendung in PHP und eine der Anforderungen ist, dass sie mit dem Exchange-Server des Kunden verbunden werden kann. Ich habe diese Funktionalität einige Male zuvor geschrieben und immer verwendetWebDAVum es zu tun, aber jetzt lehne ich mich davon weg.

Ich werde die Site unter IIS ODER Apache (ohne Präferenz) unter Windows Server 2008 ausführen. Einige Dinge, die ich tun müsste, sind das Hinzufügen von Kontakten zum Adressbuch eines bestimmten Benutzers, das Senden von E-Mails als bestimmter Benutzer und das Ausführen von Berichten über Kontakte für a Nutzer.

All dies ist mit WebDAV ziemlich einfach zu tun, aber wenn es einen besseren Weg gibt, der keine Funktionalität erfordert, die wahrscheinlich bald veraltet sein wird.

Irgendwelche Ideen?

Aktualisieren:

Justin, ich liebe die Idee, COM-Objekte zu verwenden. Ich mache mir nur Sorgen um ein drittes Produkt, damit alles funktioniert ...

John, ich kann einen Webdienst in C # schreiben, um eine Schnittstelle für diese Funktionen herzustellen und mit meiner PHP-App darauf zuzugreifen, aber es ist auch ein bisschen abgelegen.

Bisher bin ich nicht zu 100% davon überzeugt, dass beides besser ist als WebDAV ...

Kann mir jemand zeigen, wo ich dumm bin?

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

Ich habe PHP nicht verwendet, um dies zu tun, habe aber Erfahrung in der Verwendung von C #, um dasselbe zu erreichen.

Mit der Outlook-API können Sie Outlook automatisieren, anstatt eine direkte Verbindung zu Exchange herzustellen. Ich habe diesen Ansatz zuvor in einer C # -Anwendung gewählt und er funktioniert, obwohl er fehlerhaft sein kann.

Wenn Sie eine direkte Verbindung zum Exchange-Server herstellen möchten, müssen Sie nach erweitertem MAPI suchen.

In der Vergangenheit habe ich diesen Wrapper verwendetMAPIEx: Erweiterter MAPI-Wrapper.

Es ist ein C # -Projekt, aber ich glaube, Sie können .NET-Code auf einem PHP5-Windows-Server verwenden. Alternativ verfügt es über eine C ++ - Kern-DLL, die Sie möglicherweise verwenden können. Ich habe festgestellt, dass es sehr gut ist und es gibt einige gute Beispielanwendungen.

Aktualisieren:

Entschuldigung für die Verzögerung, noch keine Möglichkeit, Beiträge zu verfolgen.

Ich bin damit einverstanden, dass das Hinzufügen weiterer Ebenen zu Ihrer Anwendung und das Verlassen auf Code von Drittanbietern beängstigend sein kann (und das zu Recht).

Heute habe ich noch einen geleseninteressanter Beitragmarkiert als MAPI, das sich auf ein anderes Thema bezieht. Der Schlüssel hier ist jedoch, dass es mit verknüpft hatdieser wichtige MS-Artikel. Bisher waren mir die Probleme bei der Verwendung von verwaltetem Code für die Schnittstelle zu MAPI nicht bekannt, obwohl der C ++ - Code in der Komponente von diesem Fehler nicht betroffen sein sollte, da er nicht verwaltet wird.

Dieser Blogeintrag schlägt auch andere Möglichkeiten vor, eine Verbindung zum MAPI / Exchange-Server herzustellen. In diesem Fall aufgrund dieser neuen Faktenhttp://us3.php.net/imapkann die Antwort sein, wie vom anderen Benutzer vorgeschlagen.

Quelle
Translate

Verwendet Ihr Kunde Exchange 2007? Wenn ja, würde ich einen Blick darauf werfenExchange-Webdienste. Wenn nicht, so haarig es auch sein mag, denke ich, dass WebDAV Ihre beste Wahl ist.

Persönlich mag ich die Verwendung der Outlook.Application COM-Objektroute nicht, da die Sicherheitsanweisungen ("Eine Anwendung versucht, auf Ihre Kontakte zuzugreifen. Zulassen?" Usw.) Probleme auf einem Server verursachen können. Ich denke auch, dass es schwierig sein würde, Ihre Identitätswechsel-ähnlichen Aufgaben mit Outlook zu erledigen, z. B. das Senden von E-Mails als bestimmter Benutzer.

Quelle
Translate

Ich habe eine Open-Source-MIT-lizenzierte Bibliothek veröffentlicht, mit der Sie einige grundlegende Vorgänge in PHP mithilfe von Exchange-Webdiensten ausführen können.

Exchange Web Services für PHP

Ich habe es nur unter Linux getestet, aber ich sehe keinen Grund, warum es auch bei einer Windows-Installation von PHP nicht funktionieren würde.

Quelle
Translate

Ich kann Dmitry Streblechenko's nicht empfehlenEinlösungsdatenobjekteBibliothek hoch genug. Es ist eine COM-Komponente, die Extended MAPI eine vernünftige API bietet und deren Verwendung eine Freude macht. Die Exchange API-Zielpfosten wechseln von einer Version zur nächsten: „Verwenden Sie das Laufwerk M:! Nein, benutze WebDAV! Nein, verwenden Sie ExOLEDB!… Nein, verwenden Sie Webdienste! “ mit der einzigen Konstante ist der gute alte MAPI.

Quelle
Translate

Ich bin kein PHP-Entwickler, aber Google sagt, dass PHP 5+ COM-Komponenten instanziieren kann. Wenn Sie Outlook auf einer Box installieren können, können Sie einen PHP-Webdienst um die COM-Komponente schreiben, um die erforderlichen Anforderungen zu verarbeiten.

$outlook = COM("Outlook.Application")

Outlook-API-Referenz

Quelle
Translate

Ich würde empfehlen, zu verwenden"PHP Exchange-Webdienste"oder kurzphp-ews.

Ziemlich viel Dokumentation unter demWiki, Hat mir viel geholfen.

Quelle
Translate

DieseZarafa PHP MAPIErweiterung sieht aus wie es funktionieren könnte.

Quelle
Translate

Ich würde in IMAP schauen

IMAP, POP3 und NNTP

Quelle
Translate

https://github.com/Garethp/php-ews

Es wurde zuletzt vor 3 Monaten aktualisiert, damit es beibehalten wird

Quelle