Aquí podría ser tu PUBLICIDAD


¿La mejor forma de acceder a Exchange usando PHP?

votos
49

Estoy escribiendo una aplicación CMS en PHP y uno de los requisitos es que debe poder interactuar con el servidor Exchange del cliente. Ya escribí esta funcionalidad varias veces y siempre he usado WebDAV para hacerlo, pero ahora me estoy alejando de eso.

Voy a ejecutar el sitio en IIS o Apache (sin preferencia) en Windows Server 2008. Algunas cosas que tendría que hacer incluyen agregar contactos a la libreta de direcciones de un usuario determinado, enviar correos electrónicos como un usuario determinado y ejecutar informes de contactos para un usuario.

Todo esto es bastante fácil de hacer con WebDAV, pero si hay una forma mejor que no requiere ninguna funcionalidad que probablemente se desaproveche pronto.

¿Algunas ideas?

Actualizar:

Justin, me encanta la idea de usar objetos com, solo me preocupa mantener un tercer producto para que todo funcione ...

John, puedo escribir un servicio web en C # para interactuar con estas funciones y acceder a él con mi aplicación PHP, pero también está un poco fuera del camino.

Hasta ahora, no estoy 100% convencido de que ninguno de estos sea mejor que WebDAV ...

¿Alguien puede mostrarme dónde estoy siendo tonto?

Publicado el 03/08/2008 a las 01:03
fuente por usuario Bruce the Hoon
En otros idiomas...        العربية       

8 respuestas

votos
21

No he usado PHP para hacer esto, pero tengo experiencia en el uso de C # para lograr lo mismo.

La API de Outlook es una forma de automatizar Outlook en lugar de conectarse directamente a Exchange. Anteriormente tomé este enfoque en una aplicación C # y funciona, aunque puede tener errores.

Si desea conectarse directamente al servidor de Exchange, deberá buscar MAPI extendido.

En el pasado utilicé este envoltorio MAPIEx: Contenedor MAPI extendido .

Es un proyecto de C #, pero creo que puedes usar algún código .NET en un servidor de Windows PHP5. Alternativamente, tiene una DLL de núcleo C ++ que puede usar. He encontrado que es muy bueno y hay algunas buenas aplicaciones de ejemplo.

Actualizar:

Perdón por la demora. No hay forma actual de realizar un seguimiento de las publicaciones aún.

Estoy de acuerdo en agregar más capas a su aplicación y confiar en el código de terceros puede ser aterrador (y con razón).

Hoy leí otra publicación interesante etiquetada como MAPI que está en un tema diferente. La clave aquí es que se ha vinculado a este importante artículo de MS . Hasta ahora no he tenido conocimiento de los problemas que existen al utilizar el código administrado para hacer interfaz con MAPI, aunque el código C ++ en el componente no debería verse afectado por este error, ya que no está administrado.

Esta entrada de blog también sugiere otras formas de conectarse a MAPI / servidor de Exchange. En este caso, debido a estos nuevos hechos, http://us3.php.net/imap puede ser la respuesta sugerida por el otro usuario.

Respondida el 03/08/2008 a las 08:50
fuente por usuario John


Aquí podría ser tu PUBLICIDAD


votos
13

¿Tu cliente está usando Exchange 2007? Si es así, echaré un vistazo a los servicios web de Exchange . Si no, tan peluda como puede ser, creo que WebDAV es tu mejor opción.

Personalmente, no me gusta usar la ruta de objetos COM Outlook.Application, ya que sus mensajes de seguridad ("Una aplicación está intentando acceder a sus contactos. ¿Permitir esto?", Etc.) pueden causar problemas en un servidor. También creo que sería difícil realizar las tareas parecidas a las de suplantar a través de Outlook, como enviar un correo como un usuario determinado.

Respondida el 05/08/2008 a las 03:35
fuente por usuario Mike Powell

votos
8

No puedo recomendar la biblioteca de Redemption Data Objects de Dmitry Streblechenko lo suficiente. Es un componente COM que proporciona una API sana para MAPI extendido y es un placer utilizarla. Los postes de la API de Exchange se mueven de una versión a la siguiente: "¡Usa la unidad M:! No, usa WebDAV! No, ¡use ExOLEDB! ... ¡No, use Web Services! "Con la única constante de que es bueno el viejo MAPI.

Respondida el 01/09/2008 a las 09:33
fuente por usuario Duncan Smart

votos
7

He publicado una biblioteca con licencia MIT de código abierto que permite realizar algunas operaciones básicas en PHP usando servicios web de Exchange.

Servicios web de Exchange para PHP

Sólo he probado en Linux, pero no veo ninguna razón por la que no funcionaría en una instalación de Windows de PHP también.

Respondida el 04/05/2011 a las 02:47
fuente por usuario Riley Dutton

votos
6

No soy un desarrollador de PHP, pero Google dice que PHP 5+ puede crear instancias de componentes COM. Si puede instalar Outlook en un recuadro, puede escribir un servicio web PHP alrededor del componente COM para manejar las solicitudes que necesita.

$outlook = COM("Outlook.Application")

Referencia de la API de Outlook

Respondida el 03/08/2008 a las 04:07
fuente por usuario Justin Walgran

votos
5

Este Zarafa PHP MAPI extensión parece que podría trabajar.

Respondida el 09/05/2012 a las 07:47
fuente por usuario Scott Szretter

votos
4

Me gustaría ver en IMAP

IMAP, POP3 y NNTP

Respondida el 04/08/2008 a las 06:00
fuente por usuario Tim Boland

votos
2

Yo recomendaría el uso de " servicios web de Exchange PHP " o corta php-EWS.

Buena cantidad de documentación bajo la wiki , me ha ayudado mucho.

Respondida el 01/02/2013 a las 02:20
fuente por usuario Valentin Despa