Beste måten å få tilgang til Exchange ved hjelp av PHP?

stemmer
50

Jeg skriver en CMS program i PHP og ett av kravene er at det må være i stand til å samhandle med kundens Exchange server. Jeg har skrevet opp denne funksjonaliteten et par ganger før, og har alltid brukt WebDAV til å gjøre det, men nå er jeg lener bort fra det.

Jeg skal kjøre området på IIS eller Apache (ingen preferanse) på Windows Server 2008. Et par ting jeg trenger å gjøre blant annet legge til kontakter i en gitt bruker adressebok, sende e-post som en gitt bruker og kjøre rapporter på kontakter for en bruker.

Alt dette er ganske enkelt å gjøre med WebDAV, men hvis det er en bedre måte som ikke krever noen funksjonalitet som er sannsynlig å bli foreldet helst snart.

Noen ideer?

Oppdater:

Justin, jeg elsker ideen om å bruke COM objekter, jeg bare bekymre opprettholde et tredje produkt for å gjøre alt arbeidet ...

John, kan jeg skrive en webtjeneste i C # for å samhandle med for disse funksjonene og få tilgang til den med min PHP app, men det er også litt ut av veien.

Så langt er jeg ikke 100% overbevist om at noen av disse er bedre enn WebDAV ...

Kan noen vise meg hvor jeg blir dum?

Publisert på 03/08/2008 klokken 00:03
kilden bruker
På andre språk...                            


9 svar

stemmer
21

Jeg har ikke brukt PHP til å gjøre dette, men har erfaring med bruk av C # for å oppnå det samme.

Outlook API er en metode for å automatisere Outlook snarere enn å koble til Exchange direkte. Jeg har tidligere tatt denne tilnærmingen i en C # applikasjon og det fungerer selv om kan være buggy.

Hvis du ønsker å koble direkte til Exchange-serveren må du undersøke utvidet MAPI.

I det siste har jeg brukt denne wrapper MAPIEx: Utvidet MAPI Wrapper .

Det er en C # prosjekt, men jeg tror du kan bruke noen NET-kode på en PHP5 Windows server. Alternativt den har en C ++ kjerne DLL som du kan være i stand til å bruke. Jeg har funnet det å være veldig bra, og det er noen gode eksempel søknader.

Oppdater:

Sorry for forsinkelsen ingen nåværende måte å holde orden på innlegg enda.

Jeg er enig i å legge mer lag på søknaden din og stole på tredje parts kode kan være skummelt (og rettmessig så.)

I dag leste jeg en annen interessant innlegg merket opp som MAPI som er på et annet emne. Det viktigste her er likevel at det har knyttet til denne viktige MS artikkelen . Jeg har vært uvitende om problemene til nå på å bruke forvaltet kode til grensesnitt til MAPI selv om C ++ kode i komponenten bør være upåvirket av denne feilen som det er uovervåkede.

Dette blogginnlegget antyder også andre måter å koble til MAPI / Exchange server. I dette tilfellet på grunn av disse nye fakta http://us3.php.net/imap kan være svaret som foreslått av den andre brukeren.

Svarte 03/08/2008 kl. 07:50
kilden bruker

stemmer
13

Er kunden ved hjelp av Exchange 2007? Hvis så, vil jeg ta en titt på Exchange Web Services . Hvis ikke, så hårete som det kan være, tror jeg WebDAV er det beste alternativet.

Personlig liker jeg ikke å bruke Outlook.Application COM-objektet rute, som sine sikkerhetsmeldinger ( "Et program prøver å få tilgang til kontaktene dine. La dette?", Etc.) kan føre til problemer på en server. Jeg tror også det ville være vanskelig å oppnå dine etterligning-lignende oppgaver med Outlook, for eksempel sende e-post som en gitt bruker.

Svarte 05/08/2008 kl. 02:35
kilden bruker

stemmer
8

Jeg har gitt ut en åpen kildekode-MIT lisensiert bibliotek som lar deg gjøre noen grunnleggende operasjoner i PHP bruke Exchange Web Services.

Exchange-webtjenester for PHP

Jeg har bare testet den på Linux, men jeg kan ikke se noen grunn til at det ikke ville fungere på en Windows-installasjon av PHP også.

Svarte 04/05/2011 kl. 13:47
kilden bruker

stemmer
8

Jeg kan ikke anbefale Dmitry Streblechenko sin Redemption dataobjekter bibliotek høyt nok. Det er en COM komponent som gir en normal API til Extended MAPI og er en fryd å bruke. Exchange API goalposts flytte fra en utgivelse til den neste: “Bruk M: kjøre! Nei, bruker WebDAV! Nei, bruker ExOLEDB! ... Nei, bruker Web Services”med det eneste konstante være god gammel MAPI.

Svarte 01/09/2008 kl. 20:33
kilden bruker

stemmer
5

Jeg er ikke en PHP dev men Google sier at PHP 5+ kan instantiate COM-komponenter. Hvis du kan installere Outlook på en boks du kan skrive et PHP webtjeneste rundt COM komponent for å håndtere forespørsler du trenger.

$outlook = COM("Outlook.Application")

API innskriften Outlook

Svarte 03/08/2008 kl. 03:07
kilden bruker

stemmer
4

Dette Zarafa PHP MAPI forlengelse ser ut som det kan virke.

Svarte 09/05/2012 kl. 18:47
kilden bruker

stemmer
4

Jeg vil se nærmere på IMAP

IMAP, POP3 og NNTP

Svarte 04/08/2008 kl. 17:00
kilden bruker

stemmer
3

Jeg vil anbefale å bruke " PHP Exchange Web Services " eller kort php-EWS.

God del dokumentasjon under wiki , hjalp meg mye.

Svarte 01/02/2013 kl. 13:20
kilden bruker

stemmer
0

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

Det ble sist oppdatert 3 måneder siden så det blir vedlikeholdt

Svarte 09/10/2018 kl. 16:31
kilden bruker

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