Библиотека ActiveSync

Я пишу кроссплатформенное приложение на С++, которому необходимо подключаться к серверам Exchange и загружать почту с помощью ActiveSync.

Есть ли какая-нибудь библиотека для ActiveSync (желательно с открытым исходным кодом)?

Я не могу использовать Windows API, так как они не работают в Linux и Mac.


person James Liles    schedule 27.08.2010    source источник
comment
Удалось ли вам заставить это работать, и если да, то не могли бы вы поделиться тем, какое решение/подход вы использовали?   -  person mwag    schedule 17.11.2016


Ответы (2)


Раньше я работал с проектом SynCE по поддержке устройств Windows Mobile, подключенных к настольным компьютерам Linux, поэтому могу предложить несколько советов.

Вы имеете в виду ActiveSync или AirSync? AirSync — это протокол, который используется по радиоканалу и ActiveSync для фактического переноса данных. ActiveSync — это весь стек для синхронизации устройства WinMo, подключенного к вашему компьютеру. SynCE — единственный известный мне «полный стек» с открытым исходным кодом, эквивалентный ActiveSync, от драйвера до AirSync, графического интерфейса пользователя и интеграции с OpenSync, и я не знаю никаких проектов с открытым исходным кодом, которые представляли бы себя как устройство WinMo для ActiveSync.

Я не знаю ни одной реализации AirSync на C или C++, но я считаю, что команды Samba и OpenChange добились значительного прогресса в изначальной поддержке серверов Exchange. Около полутора лет назад мне сказали, что даже поддержка транспорта HTTP (s) не за горами с точки зрения необходимой работы (но я не уверен, что это было приоритетом).

Хотя это и не C++ и даже не клиентская библиотека, проект SynCE имеет открытый исходный код Python, который может быть полезным справочником, если не удается найти другую библиотеку.

Вот пример сервера push-почты, написанного одним из разработчиков SynCE: Авиапочта SynCE

А основной механизм синхронизации можно найти здесь: SynCE SyncEngine.

Я думаю, что в этом коде вам будет наиболее полезен SyncEngine/airsync.py.

Покопаться в вики SynCE http://www.synce.org и в их архиве списков рассылки — хороший способ найти о возникших проблемах и неожиданных подробностях о том, что является и не является чувствительным протоколом.

Вы можете найти http://libwbxml.opensync.org полезными — после декодирования слоя wbxml AirSync — это просто XML проходящий.

И, наконец, Microsoft предоставляет документацию для протокола:

person Jc2k    schedule 12.01.2011

Z-Push может дать вам необходимый старт.

person Goz    schedule 08.01.2011
comment
так кто-нибудь в итоге использовал z-push (или любую другую альтернативу, упомянутую в 1-м ответе)? кажется, мало что сказано об этой важной в остальном теме - person abbood; 06.12.2012