Melhor maneira de acessar o Exchange usando PHP?




windows exchange-server (6)

Esta extensão Zarafa PHP MAPI parece que poderia funcionar.

Estou escrevendo um aplicativo CMS em PHP e um dos requisitos é que ele seja capaz de interagir com o servidor Exchange do cliente. Eu escrevi essa funcionalidade algumas vezes antes e sempre usei o WebDAV para fazer isso, mas agora estou me afastando disso.

Estarei executando o site no IIS OU Apache (sem preferência) no servidor Windows 2008. Algumas coisas que eu precisaria fazer incluem adicionar contatos ao catálogo de endereços de um determinado usuário, enviar emails como um determinado usuário e executar relatórios de contatos para um do utilizador.

Tudo isso é muito fácil de fazer com o WebDAV, mas se houver uma maneira melhor que não exija nenhuma funcionalidade que provavelmente será preterida em breve.

Alguma ideia?

Atualizar:

Justin, adoro a ideia de usar objetos com, apenas me preocupo em manter um terceiro produto para fazer tudo funcionar ...

John, eu posso escrever um serviço da Web em C # para fazer interface com essas funções e acessá-lo com meu aplicativo PHP, mas também está um pouco fora do caminho.

Até agora, não estou 100% convencido de que qualquer um desses seja melhor que o WebDAV ...

Alguém pode me mostrar onde estou sendo bobo?


Eu não sou um desenvolvedor PHP, mas o Google diz que o PHP 5+ pode instanciar componentes COM. Se você pode instalar o Outlook em uma caixa, pode escrever um serviço da Web PHP em torno do componente COM para lidar com as solicitações necessárias.

$outlook = COM("Outlook.Application")

Referência da API do Outlook




Não posso recomendar a biblioteca Redemption Data Objects de Dmitry Streblechenko o suficiente. É um componente COM que fornece uma API sã para o MAPI estendido e é um prazer usar. Os postes da API do Exchange passam de uma versão para a seguinte: “Use a unidade M:! Não, use o WebDAV! Não, use ExOLEDB!… Não, use Web Services! ”, Com a única constante sendo o bom e velho MAPI.


Seu cliente está usando o Exchange 2007? Nesse caso, eu daria uma olhada nos Serviços Web do Exchange . Se não, por mais cabeludo que possa ser, acho que o WebDAV é sua melhor aposta.

Pessoalmente, não gosto de usar a rota de objeto COM do Outlook.Application, pois seus prompts de segurança ("Um aplicativo está tentando acessar seus contatos. Permitir isso?", Etc.) podem causar problemas em um servidor. Eu também acho que seria difícil realizar suas tarefas de representação usando o Outlook, como enviar email como um determinado usuário.





mapi