我正在编写一个需要连接到 Exchange 服务器并使用 ActiveSync 下载邮件的跨平台 c++ 应用程序。
是否有任何可用于 ActiveSync 的库(最好是开源的)?
我不能使用 Windows API,因为它们不能在 Linux 和 Mac 中运行。
我正在编写一个需要连接到 Exchange 服务器并使用 ActiveSync 下载邮件的跨平台 c++ 应用程序。
是否有任何可用于 ActiveSync 的库(最好是开源的)?
我不能使用 Windows API,因为它们不能在 Linux 和 Mac 中运行。
我曾经使用 SynCE 项目来支持连接到桌面 Linux 机器的 Windows Mobile 设备,因此可以提供一些指导。
您是指 ActiveSync 还是 AirSync?AirSync 是通过无线方式和 ActiveSync 用于实际转移数据的协议,ActiveSync 是用于同步连接到计算机的 WinMo 设备的整个堆栈。SynCE 是我所知道的唯一与 ActiveSync 等效的开源“全栈”,从驱动程序到 AirSync 再到 GUI 以及与 OpenSync 的集成,我不知道有任何开源项目将自己作为 WinMo 设备呈现给 ActiveSync。
我不知道 AirSync 的任何 C 或 C++ 实现,但我相信 Samba 和 OpenChange 团队在原生支持 Exchange 服务器方面取得了良好进展。大约一年半前,有人告诉我,就所需的工作而言,即使支持 HTTP(s) 传输也并不遥远(但我不确定它是否是优先事项)。
虽然不在 C++ 中,甚至不是客户端库,但 SynCE 项目具有开源 python 代码,如果找不到另一个库,这可能是一个有用的参考。
以下是由 SynCE 开发人员之一编写的推送邮件服务器示例:SynCE Airmail
可以在这里找到主要的同步引擎:SynCE SyncEngine
在该代码中,我认为 SyncEngine/airsync.py 对您最有用。
挖掘 SynCE wiki http://www.synce.org及其邮件列表存档是了解遇到的问题以及有关协议是什么和不敏感的令人惊讶的细节的好方法。
您可能会发现http://libwbxml.opensync.org很有用 - 在 wbxml 层被解码后,AirSync 只是 XML 传递。
最后,微软确实提供了该协议的文档:
Z-Push可能会为您提供所需的开始。