Vra

Ek skryf 'n CMS-toepassing in PHP en een van die vereistes is dat dit met die kliënt se Exchange-bediener moet kan koppel.Ek het hierdie funksionaliteit al 'n paar keer voorheen opgeskryf en het nog altyd gebruik WebDAV om dit te doen, maar nou leun ek weg daarvan.

Ek sal die webwerf op IIS OF Apache (geen voorkeur) op Windows-bediener 2008 laat loop.'n Paar dinge wat ek sal moet doen sluit in om kontakte by 'n gegewe gebruiker se adresboek te voeg, e-posse as 'n gegewe gebruiker te stuur en verslae oor kontakte vir 'n gebruiker te laat loop.

Dit alles is redelik maklik om met WebDAV te doen, maar as daar 'n beter manier is wat nie enige funksionaliteit vereis nie, sal dit waarskynlik binnekort opgeskort word.

Enige idees?

Opdateer:

Justin, ek hou van die idee om com-voorwerpe te gebruik, ek is net bekommerd oor die instandhouding van 'n 3de produk om alles te laat werk ...

John, ek kan 'n webdiens in C# skryf om mee te koppel vir hierdie funksies en toegang daartoe kry met my PHP-toepassing, maar dit is ook 'n bietjie uit die pad.

Tot dusver is ek nie 100% oortuig daarvan dat een van hierdie beter as WebDAV is nie...

Kan iemand my wys waar ek simpel is?

Was dit nuttig?

Oplossing

Ek het nie PHP gebruik om dit te doen nie, maar het ondervinding in die gebruik van C# om dieselfde ding te bereik.

Die Outlook API is 'n manier om Outlook te outomatiseer eerder as om direk aan Exchange te koppel.Ek het voorheen hierdie benadering in 'n C#-toepassing gevolg en dit werk wel, alhoewel dit karig kan wees.

As jy direk aan die Exchange-bediener wil koppel, sal jy uitgebreide MAPI moet ondersoek.

In die verlede het ek hierdie omhulsel gebruik MAPIEx:Uitgebreide MAPI Wrapper.

Dit is 'n C#-projek, maar ek glo jy kan 'n paar .NET-kode op 'n PHP5 Windows-bediener gebruik.Alternatiewelik het dit 'n C++ kern DLL wat jy dalk kan gebruik.Ek het gevind dat dit baie goed is en daar is 'n paar goeie voorbeeldtoepassings.

Opdateer:

Jammer vir die vertraging, geen huidige manier om rekord te hou van plasings nog nie.

Ek stem wel saam om meer laag op jou aansoek by te voeg en op derdeparty-kode te vertrou kan skrikwekkend wees (en met reg.)

Vandag lees ek nog een interessante pos gemerk as MAPI wat oor 'n ander onderwerp handel.Die belangrikste ding hier is egter dat dit gekoppel is aan hierdie belangrike MS-artikel.Ek was tot nou toe onbewus van die probleme met die gebruik van bestuurde kode om na MAPI te koppel, hoewel die C++-kode in die komponent nie deur hierdie fout geraak moet word nie, aangesien dit nie bestuur word nie.

Hierdie bloginskrywing stel ook ander maniere voor om aan MAPI/Exchange-bediener te koppel.In hierdie geval as gevolg van hierdie nuwe feite http://us3.php.net/imap kan die antwoord wees soos deur die ander gebruiker voorgestel.

Ander wenke

Gebruik jou kliënt Exchange 2007?Indien wel, sal ek gaan kyk na Ruil webdienste uit.Indien nie, so harig as wat dit kan wees, dink ek WebDAV is jou beste opsie.

Persoonlik hou ek nie daarvan om die Outlook.Application COM-objekroete te gebruik nie, aangesien die sekuriteit daarvan vra ("'n Toepassing probeer om toegang tot jou kontakte te verkry.Laat dit toe?", ens.) kan probleme op 'n bediener veroorsaak.Ek dink ook dit sal moeilik wees om jou nabootsingsagtige take uit te voer met behulp van Outlook, soos om e-pos as 'n gegewe gebruiker te stuur.

Ek het 'n oopbron MIT-gelisensieerde biblioteek vrygestel wat jou toelaat om 'n paar basiese bewerkings in PHP te doen deur Exchange Web Services te gebruik.

Ruil webdienste vir PHP uit

Ek het dit net op Linux getoets, maar ek sien geen rede hoekom dit nie ook op 'n Windows-installasie van PHP sou werk nie.

Ek kan nie Dmitry Streblechenko's aanbeveel nie Verlossingsdata-voorwerpe biblioteek hoog genoeg.Dit is 'n COM-komponent wat 'n gesonde API aan Extended MAPI bied en dit is 'n plesier om te gebruik.Die Exchange API-doelposte beweeg van een vrystelling na die volgende:"Gebruik die M:ry!Nee, gebruik WebDAV!Nee, gebruik ExolEdb! ... Nee, gebruik webdienste! ” met die enigste konstante goeie ou Mapi.

Ek is nie 'n PHP-ontwikkelaar nie, maar Google sê dat PHP 5+ COM-komponente kan instansieer.As jy Outlook op 'n boks kan installeer, kan jy 'n PHP-webdiens rondom die COM-komponent skryf om die versoeke te hanteer wat jy nodig het.

$outlook = COM("Outlook.Application")

Outlook API verwysing

Ek sal aanbeveel om te gebruik "PHP Exchange Web Services" of kort php-ews.

Redelike hoeveelheid dokumentasie onder die wiki, het my baie gehelp.

Hierdie Zarafa PHP MAPI uitbreiding lyk of dit kan werk.

Ek sal na IMAP kyk

IMAP, POP3 en NNTP

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

Dit is 3 maande laas opgedateer, so dit word onderhou

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top