Frage

Ich schreibe eine CMS-Anwendung in PHP und eine der Anforderungen ist, dass sie mit dem Exchange-Server des Kunden kommunizieren kann.Ich habe diese Funktionalität schon ein paar Mal beschrieben und immer verwendet WebDAV es zu tun, aber jetzt lehne ich mich davon ab.

Ich werde die Site auf IIS ODER Apache (egal) unter Windows Server 2008 betreiben.Zu den Dingen, die ich tun müsste, gehören das Hinzufügen von Kontakten zum Adressbuch eines bestimmten Benutzers, das Versenden von E-Mails als bestimmter Benutzer und das Erstellen von Berichten über Kontakte für einen Benutzer.

All dies ist mit WebDAV ziemlich einfach zu bewerkstelligen, aber wenn es eine bessere Möglichkeit gibt, die keine Funktionalität erfordert, wird diese wahrscheinlich bald veraltet sein.

Irgendwelche Ideen?

Aktualisieren:

Justin, ich liebe die Idee, COM-Objekte zu verwenden, ich mache mir nur Sorgen um die Wartung eines dritten Produkts, damit alles funktioniert ...

John, ich kann einen Webdienst in C# schreiben, mit dem ich für diese Funktionen eine Schnittstelle herstellen und mit meiner PHP-App darauf zugreifen kann, aber das ist auch etwas abgelegen.

Bisher bin ich nicht hundertprozentig davon überzeugt, dass eines davon besser ist als WebDAV ...

Kann mir jemand zeigen, wo ich albern bin?

War es hilfreich?

Lösung

Ich habe dafür kein PHP verwendet, habe aber Erfahrung mit der Verwendung von C#, um dasselbe zu erreichen.

Die Outlook-API ist eine Möglichkeit, Outlook zu 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 Extended MAPI suchen.

Früher habe ich diesen Wrapper verwendet MAPIEx:Erweiterter MAPI-Wrapper.

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

Aktualisieren:

Entschuldigung für die Verzögerung, derzeit gibt es noch keine Möglichkeit, den Überblick über Beiträge zu behalten.

Ich stimme zu, 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 einen anderen gelesen interessanter Beitrag als MAPI markiert, das sich mit einem anderen Thema befasst.Das Wichtigste hier ist jedoch, dass es verlinkt ist dieser wichtige MS-Artikel.Bisher waren mir die Probleme bei der Verwendung von verwaltetem Code als 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 Fakten http://us3.php.net/imap könnte die vom anderen Benutzer vorgeschlagene Antwort sein.

Andere Tipps

Verwendet Ihr Kunde Exchange 2007?Wenn ja, würde ich einen Blick darauf werfen Exchange-Webdienste.Wenn nicht, so umständlich es auch sein mag, denke ich, dass WebDAV die beste Wahl ist.

Persönlich mag ich die Verwendung der COM-Objektroute Outlook.Application nicht, da sie aus Sicherheitsgründen Folgendes anzeigt: „Eine Anwendung versucht, auf Ihre Kontakte zuzugreifen.“Dies zulassen?“ usw.) können Probleme auf einem Server verursachen.Ich denke auch, dass es schwierig sein würde, mit Outlook Ihre identitätsähnlichen Aufgaben zu erledigen, wie zum Beispiel das Versenden von E-Mails als bestimmter Benutzer.

Ich habe eine vom MIT lizenzierte Open-Source-Bibliothek veröffentlicht, die es Ihnen ermöglicht, einige grundlegende Vorgänge in PHP mithilfe von Exchange Web Services durchzuführen.

Exchange-Webdienste für PHP

Ich habe es nur unter Linux getestet, sehe aber keinen Grund, warum es nicht auch auf einer Windows-Installation von PHP funktionieren sollte.

Ich kann Dmitry Streblechenkos nicht empfehlen Einlösungsdatenobjekte Bibliothek hoch genug.Es handelt sich um eine COM-Komponente, die eine vernünftige API für Extended MAPI bereitstellt und deren Verwendung Spaß macht.Die Zielpfosten der Exchange-API verschieben sich von einer Version zur nächsten:"Benutze sie:fahren!Nein, verwenden Sie WebDAV!Nein, benutze ExoledB!… Nein, benutze Webdienste! “ mit der einzigen Konstanten, die gute alte Mapi ist.

Ich bin kein PHP-Entwickler, aber Google sagt, dass PHP 5+ COM-Komponenten instanziieren kann.Wenn Sie Outlook auf einem Rechner installieren können, könnten Sie einen PHP-Webdienst rund um die COM-Komponente schreiben, um die von Ihnen benötigten Anfragen zu verarbeiten.

$outlook = COM("Outlook.Application")

Referenz zur Outlook-API

Ich würde die Verwendung empfehlen "PHP Exchange-Webdienste" oder kurz php-ews.

Angemessene Menge an Dokumentation unter dem Wiki, Hat mir viel geholfen.

Das Zarafa PHP MAPI Die Erweiterung sieht so aus, als ob sie funktionieren könnte.

Ich würde mir IMAP ansehen

IMAP, POP3 und NNTP

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

Es wurde vor 3 Monaten zuletzt aktualisiert und wird daher beibehalten

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top