ActiveSync 库

Posted

技术标签:

【中文标题】ActiveSync 库【英文标题】:ActiveSync library 【发布时间】:2011-04-04 20:13:55 【问题描述】:

我正在编写一个需要连接到 Exchange 服务器并使用 ActiveSync 下载邮件的跨平台 c++ 应用程序。

是否有任何可用于 ActiveSync 的库(最好是开源的)?

我无法使用 Windows API,因为它们无法在 Linux 和 Mac 中运行。

【问题讨论】:

你能做到这一点吗?如果能,你能分享你使用的解决方案/方法吗? 【参考方案1】:

我曾经参与过 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 传递。

最后,微软确实提供了协议的文档:

ActiveSync HTTP Protocol Specification Open Specification Support Team Blog: More ActiveSync TechNet wiki Exchange ActiveSync Overview

【讨论】:

【参考方案2】:

Z-Push 可能会为您提供所需的开始。

【讨论】:

那么有没有人最终使用 z-push (或第一个答案中提到的任何其他替代方案)?关于这个原本很重要的话题似乎没有太多的说法

以上是关于ActiveSync 库的主要内容,如果未能解决你的问题,请参考以下文章

通过 ActiveSync 调试网络的问题

ActiveSync与模拟器连接

ActiveSync 在 Win7(32位) 与 WinCE7 之间使用出现的问题

ActiveSync不能连接开发板的问题

Exchange 2007 ActiveSync - 重新创建 IIS 虚拟目录

iOS NSURLAuthenticationMethodClientCertificate 未请求与 ActiveSync 服务器