MikeyB
MikeyB

Reputation: 3350

Using Zimbra SOAP API in Python

I'm trying to use the Zimbra SOAP API from Python to programmatically modify & cleanup my contacts but I'm having trouble getting started.

What I have so far is:

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 

I've logged in successfully, but can't pass this authToken in further requests.

My understanding is that any zimbraMail requests need to have a header in the urn:zimbra namespace with the authToken set there, but being new to SOAP I have no idea how to do so.

I'm not married to using SOAPpy so any example code for another library would be well appreciated.

Upvotes: 1

Views: 4802

Answers (2)

Jocelyn delalande
Jocelyn delalande

Reputation: 5384

There is also an higher level, and pythonic library: zimsoap.

Using raw SOAP or python-zimbra or zimsoap depends realy on what level of flexibility/ease you need (although I will not suggest using SOAP directly, as python-zimbra can issue any possible SOAP request to zimbra.

Upvotes: 1

Dennis Plöger
Dennis Plöger

Reputation: 168

I'd like to nod in the direction of Python-Zimbra, a python library for Zimbra, which does all that for you.

Upvotes: 1

Related Questions