在Python中使用Zimbra SOAP API

1 投票
2 回答
4642 浏览
提问于 2025-04-15 19:02

我正在尝试用Python通过Zimbra的SOAP API来编程修改和整理我的联系人,但我在开始时遇到了一些问题。

目前我已经做到了:

from SOAPpy import SOAPProxy
url = 'https://zimbra/service/soap'
auth = {"account": "xxxxx", "password": "xxxxx"}

zimbra = SOAPProxy(url, 'urn:zimbra')
zimbraAuth = SOAPProxy(url, "urn:zimbraAccount")
zimbraMail = SOAPProxy(url, "urn:zimbraMail")

response = zimbraAuth.AuthRequest(**auth)
authToken = response.authToken 

我已经成功登录,但在后续请求中无法传递这个authToken

我的理解是,任何zimbraMail的请求都需要在urn:zimbra这个命名空间的头部中设置authToken,但由于我对SOAP还不太熟悉,所以不知道该怎么做。

我并不一定要使用SOAPpy,所以如果有其他库的示例代码,我会非常感激。

2 个回答

1

还有一个更高级、更符合Python风格的库:zimsoap

使用原始的SOAP,或者python-zimbra,或者zimsoap,其实主要看你需要多大的灵活性和简单程度(不过我不建议直接使用SOAP,因为python-zimbra可以向zimbra发送任何可能的SOAP请求)。

1

我想提一下 Python-Zimbra,这是一个用于Zimbra的Python库,它可以帮你完成所有这些工作。

撰写回答