在Python中使用Zimbra SOAP API
我正在尝试用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库,它可以帮你完成所有这些工作。