Open source 如何通过脚本在Zimbra中更新联系人?

Open source 如何通过脚本在Zimbra中更新联系人?,open-source,scripting,sysadmin,zimbra,Open Source,Scripting,Sysadmin,Zimbra,我有一个Zimbra安装,我需要在其中编程更新联系人。它的REST界面似乎只用于添加新联系人,但我需要更新现有联系人。有没有开源的方法、工具或其他东西可以做到这一点?我的问题有一个答案:您可以使用“zmmailbox”命令。在Zimbra系统用户下,可以修改邮箱中的内容。由于所有内容都存储在Zimbra邮箱中,因此可以编辑联系人。我现在需要找到一种方法来使用它: box$ zmmailbox help contact autoComplete(ac) [opts]

我有一个Zimbra安装,我需要在其中编程更新联系人。它的REST界面似乎只用于添加新联系人,但我需要更新现有联系人。有没有开源的方法、工具或其他东西可以做到这一点?

我的问题有一个答案:您可以使用“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*]
box$ZM邮箱帮助联系人
自动完成(ac)[opts]{query}
-v/--详细输出
自动完全范畴(acg)[opts]{query}
-v/--详细输出
createContact(cct)[opts][attr1值1[attr2值2…]
-i/--忽略未知联系人属性
-f/--文件夹路径或id
-T/--标签ID/名称的标签列表
deleteContact(dct){联系人ID}
flagContact(fct){联系人ID}[0|1*]
getAllContacts(gact)[opts][attr1[attr2…]]
-f/--文件夹路径或id
-v/--详细输出
getContacts(gct)[opts]{contact id}[attr1[attr2…]]
-v/--详细输出
modifyContactAttrs(mcta)[opts]{contact id}[attr1 value1[attr2 value2…]]
-i/--忽略未知联系人属性
-r/--替换联系人(默认为合并)
moveContact(mct){contact id}{dest folder path}
tagContact(tct){contact id}{tag name}[0 | 1*]

实际上,Zimbra中也有一个SOAP接口,但从我阅读的论坛中可以看出,由于某种原因,他们“无法”(?!)正确地记录它,也无法生成任何WSDL文件;因此,我从未使用过它


显然,人们必须研究Zimbra的Java源代码才能看到可用的内容。

如果您最近安装了Zimbra,您应该能够在/opt/Zimbra/docs中找到SOAP文档。我自己还没试过用它……它对我来说还是希腊语


Matt

您可以将SOAP发送给ZCS,详细信息在SOAP.txt(位于/opt/zimbra/docs下)中。要修改联系人,请参阅ModifyContactRequest。您需要首先使用AuthRequest进行身份验证。这里有大量优秀的Zimbra开发人员信息:

这就是我现在正在做的:-p我想我将在Zimbra 6上为客户机web服务(已经有一些管理web服务)编写一个wsdl,我还使用了“zmpython”,它是Jython 2.5的包装器,用于访问本机Java API。它实际上不起作用,但它显示出一些承诺。