with texto strip_tags remove limpiar from eliminar allow all php windows exchange-server webdav mapi

php - texto - string strip_tags



¿La mejor manera de acceder a Exchange usando PHP? (9)

¿Su cliente usa Exchange 2007? Si es así, echaría un vistazo a los servicios web de Exchange . Si no, por más peludo que pueda ser, creo que WebDAV es su mejor opción.

Personalmente, no me gusta usar la ruta de objetos COM de Outlook.Application, ya que sus indicaciones 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 sus tareas de suplantación usando Outlook, como enviar correo como un usuario determinado.

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

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 sobre contactos para un usuario.

Todo esto es bastante fácil de hacer con WebDAV, pero si hay una mejor manera que no requiera ninguna funcionalidad, es probable que sea desaprobada en el corto plazo.

¿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 alejado.

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

¿Alguien puede mostrarme dónde estoy siendo tonto?


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

Servicios web de Exchange para PHP

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



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 he tomado este enfoque en una aplicación C # y funciona, aunque puede tener errores.

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

En el pasado utilicé este contenedor MAPIEx: Extended MAPI Wrapper .

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

Actualizar:

Perdón por la demora, todavía no hay una forma actual de hacer un seguimiento de las publicaciones.

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. Sin embargo, la clave aquí es que se ha vinculado a este importante artículo de MS . No he tenido conocimiento de los problemas hasta ahora sobre el uso de código administrado para interactuar 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 al servidor MAPI / Exchange. En este caso, debido a estos nuevos hechos, http://us3.php.net/imap puede ser la respuesta sugerida por el otro usuario.


No puedo recomendar la biblioteca de objetos de datos de redención de Dmitry Streblechenko lo suficiente. Es un componente COM que proporciona una API sensata para MAPI extendido y es un placer usarlo. Los objetivos de la API de Exchange se mueven de una versión a la siguiente: “¡Usa la unidad M:! No, use WebDAV! ¡No, use ExOLEDB! ... ¡No, use Servicios web!


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

$outlook = COM("Outlook.Application")

Referencia de API de Outlook