2010-08-27 8 views
7

Sto scrivendo un'applicazione C++ multipiattaforma che deve connettersi ai server Exchange e scaricare i messaggi tramite ActiveSync.Libreria ActiveSync

Esiste una libreria disponibile per ActiveSync (preferibilmente open source)?

Non riesco a utilizzare le API di Windows poiché non verranno eseguite in Linux & Mac.

+0

sono stati in grado di ottenere questo lavoro e se sì potrebbe condividere quale soluzione/approccio che hai usato? – mwag

risposta

3

Z-Push potrebbe fornire l'avvio necessario.

+0

così qualcuno ha finito per usare z-push (o qualcuna delle altre alternative menzionate nella prima risposta)? non sembra esserci molto da dire su questo argomento altrimenti importante – abbood

10

Ero abituato a lavorare con il progetto SynCE sul supporto di dispositivi Windows Mobile connessi a macchine Linux desktop, quindi posso offrire alcuni suggerimenti.

Intendi ActiveSync o AirSync? AirSync è il protocollo che utilizza in modalità wireless e ActiveSync per spostare effettivamente i dati, ActiveSync è l'intero stack per la sincronizzazione di un dispositivo WinMo collegato al computer. SynCE è l'unico "full stack" open source equivalente ad ActiveSync che io conosca, dal driver ad AirSync alle GUI e l'integrazione con OpenSync, e non conosco nessun progetto open source che si presenta come un dispositivo WinMo ad ActiveSync.

Non so di implementazioni C o C++ di AirSync, ma credo che i team di Samba e OpenChange abbiano compiuto buoni progressi nel supportare nativamente i server Exchange. Circa un anno e mezzo fa mi è stato detto che anche il supporto del trasporto HTTP non era molto lontano dal punto di vista del lavoro necessario (ma non sono sicuro che fosse una priorità).

Mentre non è in C++ e anche se non esiste una libreria client, il progetto SynCE ha un codice python open source che potrebbe essere un riferimento utile se non è possibile trovare un'altra libreria.

Ecco un esempio di un server di push mail che è stato scritto da uno degli sviluppatori Synce: SynCE Airmail

E il motore di sincronizzazione principale può essere trovato qui: SynCE SyncEngine

All'interno di tale codice, penso SyncEngine /airsync.py ti sarà molto utile.

Scavando attorno al wiki Synce http://www.synce.org e il loro archivio di mailing list è un buon modo per scoprire i problemi incontrati e dettagli sorprendenti su ciò che il protocollo è e non è sensibile.

È possibile trovare utile http://libwbxml.opensync.org - dopo che il livello wbxml è stato decodificato AirSync è solo un passaggio XML.

E, infine, Microsoft forniscono la documentazione per il protocollo: