Beste manier om toegang te krijgen tot Exchange met behulp van PHP?

stemmen
49

Ik ben het schrijven van een CMS applicatie in PHP en een van de eisen is dat het moet in staat zijn om te communiceren met Exchange-server van de klant. Ik heb deze functionaliteit een paar keer eerder geschreven en hebben altijd WebDAV om het te doen, maar nu ben ik leunend uit de buurt van dat.

Ik zal het uitvoeren van de site op IIS of Apache (geen voorkeur) op Windows Server 2008. Een paar dingen die ik zou moeten doen onder meer het toevoegen van contactpersonen voor een bepaalde gebruiker adresboek, e-mail verzenden als een gegeven gebruiker en uitvoeren van rapporten over contacten voor een gebruiker.

Dit alles is vrij gemakkelijk te maken met WebDAV, maar als er een betere manier die geen functionaliteit die waarschijnlijk zal worden afgekeurd op korte termijn vereist.

Iemand een idee?

Bijwerken:

Justin, ik hou van het idee van het gebruik van COM-objecten, ik heb net zorgen te maken over het handhaven van een 3e product om alles te laten werken ...

John, ik kan een web service in C # om te communiceren met de voor deze functies en toegang tot het met mijn PHP app te schrijven, maar het is ook een beetje uit de weg.

Tot nu toe, ik ben niet 100% van overtuigd dat een van deze is beter dan WebDAV ...

Kan iemand me laten zien waar ik ben gewoon dom?

De vraag is gesteld op 03/08/2008 om 01:03
bron van user
In andere talen...                            


9 antwoorden

stemmen
6

Ik ben geen PHP dev maar Google zegt dat PHP 5+ kunnen instantiëren COM-onderdelen. Als u Outlook op een doos kunt installeren kan je een PHP web service rond de COM-onderdeel schrijven naar de aanvragen die u nodig heeft te behandelen.

$outlook = COM("Outlook.Application")

Outlook API referance

antwoordde op 03/08/2008 om 04:07
bron van user

stemmen
21

Ik heb geen gebruik PHP om dit te doen, maar hebben ervaring in het gebruik van C # om hetzelfde te bereiken.

De Outlook API is een manier automatiseren Outlook plaats verbinden direct Exchange. Ik heb eerder deze benadering genomen in een C # applicatie en het werkt maar kunnen buggy zijn.

Wilt u direct verbinding maken met de Exchange-server die u nodig heeft om uitgebreide MAPI onderzoeken.

In het verleden gebruikte ik dit wrapper MAPIEx: Extended MAPI Wrapper .

Het is een C # project, maar ik denk dat je kunt een aantal .NET-code te gebruiken op een PHP5 Windows-server. Als alternatief heeft het een C ++ kern DLL dat je misschien een kunnen gebruiken. Ik vond het zeer goed en er zijn enkele goede voorbeeld toepassingen.

Bijwerken:

Sorry voor de vertraging geen huidige manier om bij te houden van het berichten nog te houden.

Ik ben het ermee eens het toevoegen van meer laag op om uw aanvraag en op basis van 3rd party code kan eng zijn (en terecht).

Vandaag las ik een ander interessant bericht gelabeld als MAPI dat op een ander onderwerp. Het belangrijkste hier is echter dat het is gekoppeld aan dit belangrijke MS artikel . Ik heb niet bewust van de problemen tot nu toe over het gebruik van beheerde code voor de interface met MAPI, hoewel de C ++ code in de component onaangetast zou moeten zijn door deze fout want het is unmanaged.

Dit blog artikel suggereert ook andere manieren om verbinding te maken met MAPI / Exchange-server. In dit geval is als gevolg van deze nieuwe feiten http://us3.php.net/imap het antwoord kan zijn, zoals voorgesteld door de andere gebruiker.

antwoordde op 03/08/2008 om 08:50
bron van user

stemmen
4

Ik zou kijken naar IMAP

IMAP, POP3 en NNTP

antwoordde op 04/08/2008 om 18:00
bron van user

stemmen
13

Is uw klant met behulp van Exchange 2007? Als dat zo is, zou ik een kijkje nemen op zijn Exchange Web Services . Zo niet, zo behaard als het kan, ik denk dat WebDAV is uw beste weddenschap.

Persoonlijk geloof ik niet graag met behulp van de Outlook.Application COM-object route, zoals de security prompts ( "Een toepassing probeert toegang te krijgen tot uw contacten. Laat dit?", Enz.) Kan leiden tot problemen op een server veroorzaken. Ik denk ook dat het zou moeilijk zijn om uw imitatie-achtige taken met Outlook, zoals het verzenden van e-mail als een bepaalde gebruiker te bereiken zijn.

antwoordde op 05/08/2008 om 03:35
bron van user

stemmen
8

Ik kan niet aanraden Dmitry Streblechenko's Redemption Data Objects bibliotheek sterk genoeg. Het is een COM-component die een gezonde API Extended MAPI biedt en is een genot om te gebruiken. The Exchange API doelpalen verplaatsen van de ene versie naar de volgende: “Gebruik de M: rijden! Nee, WebDAV gebruiken! Nee, gebruik ExOLEDB! ... Nee, gebruiken Web Services”met de enige constante die goede oude MAPI.

antwoordde op 01/09/2008 om 21:33
bron van user

stemmen
7

Ik heb een open-source MIT licentie library die u toelaat om een ​​aantal fundamentele handelingen uit te voeren in PHP met behulp van Exchange Web Services vrijgegeven.

Exchange Web Services voor PHP

Ik heb alleen getest op Linux, maar ik zie geen reden waarom het niet zou werken op een Windows-installatie van PHP als goed zien.

antwoordde op 04/05/2011 om 14:47
bron van user

stemmen
5

Dit Zarafa PHP MAPI extensie lijkt erop dat het zou kunnen werken.

antwoordde op 09/05/2012 om 19:47
bron van user

stemmen
2

Ik zou adviseren het gebruik van " PHP Exchange Web Services " of korte php-EWS.

Fair hoeveelheid documentatie onder de wiki , heeft me veel geholpen.

antwoordde op 01/02/2013 om 14:20
bron van user

stemmen
0

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

Het is voor het laatst bijgewerkt 3 maanden geleden, dus het wordt gehandhaafd

antwoordde op 09/10/2018 om 16:31
bron van user

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