Domanda

Sto scrivendo un'applicazione CMS in PHP e uno dei requisiti è che deve potersi interfacciare con il server Exchange del cliente.Ho scritto questa funzionalità alcune volte prima e l'ho sempre utilizzata WebDAV farlo, ma ora mi sto allontanando da questo.

Eseguirò il sito su IIS O Apache (nessuna preferenza) su Windows Server 2008.Alcune cose che dovrei fare includono l'aggiunta di contatti alla rubrica di un determinato utente, l'invio di e-mail come un determinato utente e l'esecuzione di report sui contatti per un utente.

Tutto questo è abbastanza semplice da fare con WebDAV, ma se esiste un modo migliore che non richieda alcuna funzionalità, probabilmente verrà presto deprecato.

Qualche idea?

Aggiornamento:

Justin, adoro l'idea di utilizzare oggetti com, mi preoccupo solo di mantenere un terzo prodotto per far funzionare tutto...

John, posso scrivere un servizio Web in C# per interfacciarmi con queste funzioni e accedervi con la mia app PHP, ma è anche un po' fuori mano.

Finora, non sono convinto al 100% che nessuno di questi sia migliore di WebDAV...

Qualcuno può mostrarmi dove sono sciocco?

È stato utile?

Soluzione

Non ho usato PHP per fare questo, ma ho esperienza nell'uso di C# per ottenere la stessa cosa.

L'API di Outlook è un modo per automatizzare Outlook anziché connettersi direttamente a Exchange.Ho già adottato questo approccio in un'applicazione C# e funziona anche se può presentare bug.

Se desideri connetterti direttamente al server Exchange dovrai ricercare MAPI estesa.

In passato utilizzavo questo wrapper MAPIEx:Wrapper MAPI esteso.

È un progetto C# ma credo che tu possa utilizzare del codice .NET su un server Windows PHP5.In alternativa ha una DLL core C++ che potresti essere in grado di utilizzare.L'ho trovato molto buono e ci sono alcuni buoni esempi di applicazioni.

Aggiornamento:

Ci scusiamo per il ritardo, non esiste ancora un modo per tenere traccia dei post.

Sono d'accordo che aggiungere più livelli alla tua applicazione e fare affidamento su codice di terze parti può essere spaventoso (e giustamente).

Oggi ne leggo un altro post interessante contrassegnato come MAPI su un argomento diverso.La cosa fondamentale qui però è che è collegato a questo importante articolo sulla SM.Finora non ero a conoscenza dei problemi relativi all'utilizzo del codice gestito per interfacciarsi con MAPI, sebbene il codice C++ nel componente non dovrebbe essere influenzato da questo errore poiché non è gestito.

Questo post di blog suggerisce anche altri modi per connettersi al server MAPI/Exchange.In questo caso a causa di questi nuovi fatti http://us3.php.net/imap potrebbe essere la risposta suggerita dall'altro utente.

Altri suggerimenti

Il tuo cliente utilizza Exchange 2007?Se è così, darei un'occhiata Servizi Web di scambio.In caso contrario, per quanto complicato possa essere, penso che WebDAV sia la soluzione migliore.

Personalmente non mi piace utilizzare il percorso dell'oggetto COM Outlook.Application, poiché la sua sicurezza richiede ("Un'applicazione sta tentando di accedere ai tuoi contatti.Consentire questo?", ecc.) può causare problemi su un server.Penso anche che sarebbe difficile svolgere attività simili alla rappresentazione utilizzando Outlook, come l'invio di posta come un determinato utente.

Ho rilasciato una libreria open source con licenza MIT che ti consente di eseguire alcune operazioni di base in PHP utilizzando i servizi Web Exchange.

Servizi Web di scambio per PHP

L'ho testato solo su Linux ma non vedo alcun motivo per cui non funzionerebbe anche su un'installazione Windows di PHP.

Non posso raccomandare Dmitry Streblechenko Oggetti dati di riscatto biblioteca abbastanza bene.È un componente COM che fornisce un'API valida a Extended MAPI ed è un piacere da usare.Gli obiettivi dell'API Exchange passano da una versione a quella successiva:“Usa la M:guidare!No, usa WebDAV!No, usa ExoledB! ... No, usa i servizi web! " con l'unico costante è un buon vecchio mapi.

Non sono uno sviluppatore PHP ma Google afferma che PHP 5+ può creare un'istanza di componenti COM.Se puoi installare Outlook su una macchina, potresti scrivere un servizio web PHP attorno al componente COM per gestire le richieste di cui hai bisogno.

$outlook = COM("Outlook.Application")

Riferimento all'API di Outlook

Consiglierei l'uso "Servizi Web di scambio PHP" o breve php-ews.

Discreta quantità di documentazione ai sensi del wiki, mi ha aiutato molto.

Questo Zarafa PHP MAPI l'estensione sembra che potrebbe funzionare.

Vorrei esaminare IMAP

IMAP, POP3 e NNTP

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

È stato aggiornato l'ultima volta 3 mesi fa, quindi è mantenuto

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top