我有一个 Zimbra 安装,我需要以编程方式更新其中的联系人。似乎它的 REST 接口仅用于添加新联系人,但我需要更新现有联系人。有没有办法,工具或其他东西,开源,可以做到这一点?
4 回答
好吧,我有一个问题的答案:您可以使用“zmmailbox”命令。在 Zimbra 系统用户下,可以修改邮箱中的内容。由于几乎所有内容都存储在 Zimbra 邮箱中,因此可以编辑联系人。我现在需要找到一种方法来使用它:
box$ zmmailbox help contact
autoComplete(ac) [opts] {query}
-v/--verbose verbose output
autoCompleteGal(acg) [opts] {query}
-v/--verbose verbose output
createContact(cct) [opts] [attr1 value1 [attr2 value2...]]
-i/--ignore ignore unknown contact attrs
-f/--folder <arg> folder-path-or-id
-T/--tags <arg> list of tag ids/names
deleteContact(dct) {contact-ids}
flagContact(fct) {contact-ids} [0|1*]
getAllContacts(gact) [opts] [attr1 [attr2...]]
-f/--folder <arg> folder-path-or-id
-v/--verbose verbose output
getContacts(gct) [opts] {contact-ids} [attr1 [attr2...]]
-v/--verbose verbose output
modifyContactAttrs(mcta) [opts] {contact-id} [attr1 value1 [attr2 value2...]]
-i/--ignore ignore unknown contact attrs
-r/--replace replace contact (default is to merge)
moveContact(mct) {contact-ids} {dest-folder-path}
tagContact(tct) {contact-ids} {tag-name} [0|1*]
You can send SOAP to ZCS, the details are in soap.txt (located under /opt/zimbra/docs). To modify a contact see ModifyContactRequest. You'll need to authenticate first using AuthRequest. Tons of good Zimbra developer information is here: http://www.zimbra.com/forums/developers/
Zimbra 中实际上还有一个 SOAP 接口,但从我通过阅读zimbra.com/forums上的论坛了解到的情况来看,由于某种原因,他们“不能”(?!)正确记录它,也不能生成任何 WSDL 文件; 因此我从未使用过它。
显然,必须研究 Zimbra 的 Java 源代码才能看到可用的内容。
如果您最近安装了 Zimbra,您应该能够在 /opt/zimbra/docs 中找到 SOAP 文档。我自己还没有尝试过使用它……对我来说它仍然是希腊语。
马特