[Fedora-suds-list] Microsoft Exchange EWS module

Jared Eckersley jeckersley at gemini.edu
Fri Jul 23 07:59:04 UTC 2010


Hi Erik,

This is what I get when I run your script:
python demo.py
Traceback (most recent call last):
  File "demo.py", line 11, in <module>
    exchange = Exchange(domain=domain, username=user, password=pw,
datadir=datadir)
  File "/Users/jeckersley/Sites/geminiDigest/Exchange.py", line 79, in
__init__
    self.version = self.Version(self)
  File "/Users/jeckersley/Sites/geminiDigest/Exchange.py", line 136, in
__init__
    self.minorbuildnumber = self.get()
  File "/Users/jeckersley/Sites/geminiDigest/Exchange.py", line 203, in get
    header = ElementTree.fromstring(response).find('{%s}Header' % soapns)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xml/
etree/ElementTree.py", line 964, in XML
    return parser.close()
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/xml/
etree/ElementTree.py", line 1254, in close
    self._parser.Parse("", 1) # end of data
xml.parsers.expat.ExpatError: no element found: line 1, column 0

- Jared


On 7/22/10 9:49 PM, "Erik Cederstrand" <erik at cederstrand.dk> wrote:

> Hi Jared,
> 
> Den 23/07/2010 kl. 09.22 skrev Jared Eckersley:
> 
>> I was able to manually remove the python-ntlm library and reinstall and got
>> it working again.
> 
> Great. Could you try my script again and see if it works for you?
> 
>> createitem = Element('CreateItem')
> [...]
>> attr = c.service.CreateItem(createitem)
> 
> CreateItem() takes as arguments the elements within createitem, i.e.
> 'saveditemfolderid' and 'items'. You shouldn't create the 'createitem'
> element. If you look at your XML, you have the CreateItem tag twice:
> 
>>         <ns1:CreateItem>
>>            <CreateItem MessageDisposition="SendAndSaveCopy"
>> xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
> 
> 
> Your namespace usage is also funky. You need to clean that up if you get more
> 'Invalid request' messages.
> 
> Finally, you can't use the factory methods, since CreateItem expects the
> attribute MessageDisposition, and Suds doesn't support that without the patch
> in ticket #21. Generate the full XML instead (including headers) and inject
> it:
> 
> c.service.CreateItem(__inject={'msg':xml})
> 
> Thanks,
> Erik



More information about the suds mailing list