windows - La meilleure façon d'accéder à Exchange en utilisant PHP?

Translate

J'écris une application CMS en PHP et l'une des exigences est qu'elle doit pouvoir s'interfacer avec le serveur Exchange du client. J'ai écrit cette fonctionnalité plusieurs fois auparavant et j'ai toujours utiliséWebDAVpour le faire, mais maintenant je m'éloigne de ça.

J'exécuterai le site sur IIS OU Apache (aucune préférence) sur le serveur Windows 2008. Quelques choses que je devrais faire incluent l'ajout de contacts au carnet d'adresses d'un utilisateur donné, l'envoi d'e-mails en tant qu'utilisateur donné et l'exécution de rapports sur les contacts pour un utilisateur.

Tout cela est assez facile à faire avec WebDAV, mais s'il existe un meilleur moyen qui ne nécessite aucune fonctionnalité qui sera probablement obsolète de sitôt.

Des idées?

Mettre à jour:

Justin, j'adore l'idée d'utiliser des objets com, je me soucie juste de maintenir un 3ème produit pour que tout fonctionne ...

John, je peux écrire un service Web en C # avec lequel interfacer ces fonctions et y accéder avec mon application PHP, mais c'est aussi un peu à l'écart.

Jusqu'à présent, je ne suis pas convaincu à 100% que l'un ou l'autre de ces éléments soit meilleur que WebDAV ...

Quelqu'un peut-il me montrer où je suis stupide?

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

Toutes les réponses

Translate

Je n'ai pas utilisé PHP pour faire cela mais j'ai de l'expérience dans l'utilisation de C # pour réaliser la même chose.

L'API Outlook est un moyen d'automatiser Outlook plutôt que de se connecter directement à Exchange. J'ai déjà adopté cette approche dans une application C # et cela fonctionne bien que cela puisse être bogué.

Si vous souhaitez vous connecter directement au serveur Exchange, vous devrez rechercher MAPI étendu.

Dans le passé, j'ai utilisé ce wrapperMAPIEx: Wrapper MAPI étendu.

C'est un projet C # mais je pense que vous pouvez utiliser du code .NET sur un serveur PHP5 Windows. Il possède également une DLL principale C ++ que vous pourrez peut-être utiliser. Je l'ai trouvé très bon et il existe de bons exemples d'applications.

Mettre à jour:

Désolé pour le retard, aucun moyen actuel de suivre les messages pour le moment.

Je suis d'accord pour ajouter plus de couches à votre application et compter sur un code tiers peut être effrayant (et à juste titre).

Aujourd'hui j'en ai lu un autreposte intéressantétiqueté comme MAPI sur un sujet différent. L'essentiel ici est qu'il est lié àcet article important de MS. Jusqu'à présent, je n'étais pas au courant des problèmes liés à l'utilisation du code géré pour s'interfacer avec MAPI, bien que le code C ++ du composant ne soit pas affecté par cette erreur car il n'est pas géré.

Cette entrée de blog suggère également d'autres moyens de se connecter au serveur MAPI / Exchange. Dans ce cas, en raison de ces nouveaux faitshttp://us3.php.net/imappeut être la réponse suggérée par l'autre utilisateur.

La source
Translate

Votre client utilise-t-il Exchange 2007? Si oui, je jetterais un œil àServices Web Exchange. Sinon, aussi poilu que possible, je pense que WebDAV est votre meilleur pari.

Personnellement, je n'aime pas utiliser la route d'objet Outlook.Application COM, car ses invites de sécurité ("Une application tente d'accéder à vos contacts. Autoriser cela?", Etc.) peuvent causer des problèmes sur un serveur. Je pense également qu'il serait difficile d'accomplir vos tâches de type usurpation d'identité à l'aide d'Outlook, telles que l'envoi de courrier en tant qu'utilisateur donné.

La source
Translate

J'ai publié une bibliothèque open-source sous licence MIT qui vous permet d'effectuer certaines opérations de base en PHP à l'aide des services Web Exchange.

Services Web Exchange pour PHP

Je ne l'ai testé que sur Linux mais je ne vois aucune raison pour laquelle cela ne fonctionnerait pas également sur une installation Windows de PHP.

La source
Translate

Je ne peux pas recommander Dmitry Streblechenko'sObjets de données d'échangebibliothèque assez fortement. C'est un composant COM qui fournit une API saine à Extended MAPI et c'est un plaisir à utiliser. Les objectifs de l'API Exchange passent d'une version à l'autre: «Utilisez le lecteur M:! Non, utilisez WebDAV! Non, utilisez ExOLEDB!… Non, utilisez les services Web! » la seule constante étant le bon vieux MAPI.

La source
Translate

Je ne suis pas un développeur PHP, mais Google dit que PHP 5+ peut instancier des composants COM. Si vous pouvez installer Outlook sur une boîte, vous pouvez écrire un service Web PHP autour du composant COM pour gérer les demandes dont vous avez besoin.

$outlook = COM("Outlook.Application")

Référence API Outlook

La source
Translate

Je recommanderais d'utiliser"Services Web PHP Exchange"ou courtphp-ews.

Une bonne quantité de documentation sous lewiki, m'a beaucoup aidé.

La source
Translate

CeZarafa PHP MAPIL'extension semble pouvoir fonctionner.

La source
Translate

Je regarderais dans IMAP

IMAP, POP3 et NNTP

La source
Translate

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

Il a été mis à jour pour la dernière fois il y a 3 mois et est donc conservé

La source