【发布时间】:2016-02-02 09:50:12
【问题描述】:
问题
如何访问 CommuniGate Pro 服务器上的所有联系人?
上下文
我需要从存储在 Communigate Pro 服务器上的 70 个电子邮件帐户迁移联系人。从 CommuniGate supports CardDAV 开始,我决定使用此协议,而不是从他们的 Web 客户端 Pronto 手动导出联系人。
我已成功访问 CardDAV 文件夹并提取其中包含的 vCard。但是,问题在于并非所有联系人都显示在 CardDAV 中。特别是,Web 客户端包含在 CardDAV 中不可见的联系人子组。
当我从 Web 客户端导出这些子组时,它们会以名为 vCardGroup 的专有格式输出为 txt 文件。即使我写了一个PHP脚本将vCardGroup转换为vCard,使用这种方法仍然很慢。
如果您提出一种以编程方式提取这些联系人子组的方法,我将不胜感激。我知道 CardDAV 不支持子组,所以我想最大的问题是:这些 txt 文件存储在哪里?
作为参考,请在 CardDAV 文件夹的根目录中找到PROPFIND 请求的结果here。请注意,CommuniGate 似乎通过 http://calendarserver.org 实现 CardDAV。
感谢您的关注!
【问题讨论】:
-
CardDAV 本身确实支持子组(组的成员可以是任何其他 vCard,包括组 vCard),但许多客户端不支持。也许这就是 CommuniGate 服务器没有在其 CardDAV 接口中公开这些内容的原因。不过,这不是您问题的答案,也许您应该将其标记为“CommuniGate”而不是 CardDAV - 它确实似乎是特定于 CG 的。
-
感谢 hnh 的回复。您能否向我推荐一个支持此功能的 CardDAV 客户端?附言我尝试将问题标记为 CommuniGate,但我做不到,因为创建新标签需要 1000 个声望。
-
我不知道哪些可以,也许没有,但 vCard 格式支持 :-) 无论如何它不会真正帮助你的情况。我的意思是,CGP 可能会故意禁用该功能以支持不支持嵌套组并且可能会中断的客户端(即最重要的那些:iOS 和 OSX)。
-
谢谢 hnh。与此同时,我联系了 Communigate 支持,他们告诉我他们的 CardDAV 支持非常基础。他们建议我使用 XIMSS 协议。我会回答我自己的问题;谢谢你的帮助!