Melhor maneira para acessar o Exchange usando PHP?

votos
49

Eu estou escrevendo um aplicativo CMS em PHP e um dos requisitos é que ele deve ser capaz de interagir com o servidor Exchange do cliente. Eu escrevi essa funcionalidade algumas vezes antes e sempre usado WebDAV para fazê-lo, mas agora eu estou inclinado longe disso.

Vou estar executando o site no IIS ou Apache (sem preferência) no servidor Windows 2008. Algumas coisas que eu precisaria fazer incluem a adição de contatos para livro de endereços de um determinado usuário, enviar e-mails como um determinado usuário e executar relatórios sobre os contatos para um do utilizador.

Tudo isso é muito fácil de fazer com WebDAV, mas se há uma maneira melhor que não requer qualquer funcionalidade que é susceptível de ser obsoleto em breve.

Alguma ideia?

Atualizar:

Justin, eu amo a idéia de usar objetos COM, eu apenas se preocupar com a manutenção de uma terceira produto para fazer tudo funcionar ...

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

Até agora, eu não estou 100% convencido de que qualquer um destes é melhor do que WebDAV ...

Alguém pode me mostrar onde eu estou sendo bobo?

Publicado 03/08/2008 em 01:03
fonte usuário
Em outras línguas...                            


9 respostas

votos
21

Eu não usei PHP para fazer isso, mas têm experiência no uso de C # para conseguir a mesma coisa.

A API Outlook é uma maneira de automatizar o Outlook, em vez de se conectar ao Exchange diretamente. Eu já havia tomado esta abordagem em uma aplicação C # e ele não funciona, embora pode ser buggy.

Se você deseja se conectar diretamente ao servidor Exchange você precisará pesquisar MAPI estendido.

No passado, eu usei esse invólucro MAPIEx: Extensão MAPI Wrapper .

É um projeto C #, mas eu acredito que você pode usar algum código .NET em um servidor PHP5 do Windows. Em alternativa, tem um ++ DLL núcleo C que você pode ser um capaz de usar. Eu encontrei-o para ser muito bom e existem alguns bons exemplos de aplicações.

Atualizar:

Desculpe pela demora nenhuma maneira corrente para manter o controle de mensagens ainda.

Eu concordo adicionando mais camada sobre a sua aplicação e contando com código do 3o partido pode ser assustador (e justamente por isso.)

Hoje eu li um outro post interessante marcado como MAPI que é sobre um assunto diferente. O importante aqui é que embora ele tenha ligado a este artigo importante MS . I ter tido conhecimento das questões até agora sobre o uso do código gerenciado para fazer interface com MAPI, embora o código C ++ no componente deve ser afetado por esse erro, pois é não gerenciado.

Este blog também sugere outras maneiras de se conectar ao servidor MAPI / Exchange. Neste caso, devido a estes novos fatos http://us3.php.net/imap pode ser a resposta como sugerido por outro usuário.

Respondeu 03/08/2008 em 08:50
fonte usuário

votos
13

É o seu cliente usando o Exchange 2007? Se assim for, eu ter um olhar para o Exchange Web Services . Se não, como cabeludo, pois ele pode ser, eu acho WebDAV é sua melhor aposta.

Pessoalmente eu não gosto de usar a rota objeto Outlook.Application COM, como os seus avisos de segurança ( "Um aplicativo está tentando acessar seus contatos. Permitir que este?", Etc.) pode causar problemas em um servidor. Eu também acho que seria difícil de realizar suas tarefas de representação semelhante usando o Outlook, como o envio de e-mail como um determinado usuário.

Respondeu 05/08/2008 em 03:35
fonte usuário

votos
8

Eu não posso recomendar de Dmitry Streblechenko Redemption Data Objects biblioteca altamente suficiente. É um componente COM que fornece uma API sane a MAPI estendido e é uma alegria para usar. Os postes de câmbio API mover de uma versão para a próxima: “Use o M: drive! Não, usar WebDAV! Não, usar ExOLEDB! ... Não, usar Web Services!”, Com a única constante ser bom MAPI de idade.

Respondeu 01/09/2008 em 21:33
fonte usuário

votos
7

I lançaram uma biblioteca licenciado MIT open-source que permite que você faça algumas operações básicas em PHP usando o Exchange Web Services.

Serviços Web do Exchange para PHP

Eu só testei no Linux, mas eu não vejo nenhuma razão pela qual não iria trabalhar em uma instalação do Windows do PHP também.

Respondeu 04/05/2011 em 14:47
fonte usuário

votos
6

Eu não sou um dev PHP mas o Google diz que o PHP 5+ pode instanciar componentes COM. Se você pode instalar o Outlook em uma caixa que você poderia escrever um serviço web PHP em torno do componente COM para lidar com os pedidos que você precisa.

$outlook = COM("Outlook.Application")

referance API Outlook

Respondeu 03/08/2008 em 04:07
fonte usuário

votos
5

Este Zarafa PHP MAPI extensão parece que poderia trabalhar.

Respondeu 09/05/2012 em 19:47
fonte usuário

votos
4

Gostaria de olhar para IMAP

IMAP, POP3 e NNTP

Respondeu 04/08/2008 em 18:00
fonte usuário

votos
2

Eu recomendaria usar " Exchange Web Services PHP " ou curta php-EWS.

Boa quantidade de documentação sob o wiki , me ajudou muito.

Respondeu 01/02/2013 em 14:20
fonte usuário

votos
0

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

Ele foi atualizado 3 meses atrás por isso é mantido

Respondeu 09/10/2018 em 16:31
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more