Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ActiveSync library

Tags:

c++

activesync

I am writing a cross-platform c++ application that needs to connect to Exchange servers and download mails using ActiveSync.

Is there any library available for ActiveSync (preferably open-source)?

I can't use Windows APIs as they won't run in Linux & Mac.

like image 856
James Liles Avatar asked Aug 27 '10 14:08

James Liles


People also ask

What is an ActiveSync folder?

By Jason Johnston. Exchange ActiveSync is a collection of protocols that enables mobile devices to synchronize and exchange messaging objects such as email, contacts, or calendar items with a server.

What is ActiveSync used for?

ActiveSync is a client protocol that lets users synchronize their Exchange mailbox with a mobile device. By default, ActiveSync is enabled on new user mailboxes. Disabling ActiveSync on a mailbox prevents the user from synchronizing their mailbox with a mobile device (by using ActiveSync).

What is replacing ActiveSync?

Starting with Windows Vista, ActiveSync has been replaced with the Windows Mobile Device Center, which is included as part of the operating system.


2 Answers

I used to work with the SynCE project on supporting Windows Mobile devices connected to desktop Linux machines so can offer a few pointers.

Do you mean ActiveSync or AirSync? AirSync is the protocol that used over the air and by ActiveSync to actually shift the data, ActiveSync is the whole stack for syncing a WinMo device connected to your computer. SynCE is the only open source "full stack" equivalent to ActiveSync that I know of, from driver to AirSync to GUI's and integration with OpenSync, and I don't know any open source projects that present themselves as a WinMo device to ActiveSync.

I don't know of any C or C++ implementations of AirSync, but I believe that the Samba and OpenChange teams have made good progress at supporting Exchange servers natively. About a year and a half ago I was told that even supporting the HTTP(s) transport wasn't far away in terms of work needed (but i'm not sure if its been a priority).

While not in C++ and while not even a client library, the SynCE project has open source python code which might be a useful reference if another library cannot be found.

Here is an example of a push mail server that was written by one of the SynCE developers: SynCE Airmail

And the main sync engine can be found here: SynCE SyncEngine

Within that code, I think SyncEngine/airsync.py will be most useful to you.

Digging around the SynCE wiki http://www.synce.org and their mailing list archive is a good way of finding out about problems encountered and surprising details about what the protocol is and isnt sensitive about.

You may find http://libwbxml.opensync.org useful - after the wbxml layer has been decoded AirSync is just XML passing.

And finally, Microsoft do provide documentation for the protocol:

  • ActiveSync HTTP Protocol Specification
  • Open Specification Support Team Blog: More ActiveSync
  • TechNet wiki Exchange ActiveSync Overview
like image 84
Jc2k Avatar answered Oct 05 '22 21:10

Jc2k


Z-Push might provide you with the start you need.

like image 33
Goz Avatar answered Oct 05 '22 19:10

Goz