有没有人能够使用Python suds来使用Exchange Web Services?

时间:2011-11-20 03:00:57

标签: python soap wsdl exchangewebservices suds

我试图能够调用像UpdateItem这样的方法并且没有成功。我一直收到以下错误:

异常:导入的模式(http://www.w3.org/XML/1998/namespace)at(http:// www .w3.org / 2001 / xml.xsd),失败

如果有人可以发布一些创建客户端并成功调用方法的工作代码,我将非常感激。谢谢。我在某处读到将本地模式文件下载到我的电脑上可能会有所帮助,但我不知道如何在我的代码中实现它。以下是我到目前为止的情况:

import urllib2
import suds
import logging
from suds import WebFault
from suds.client import Client
from suds.client import Factory
from suds.transport.http import HttpAuthenticated
from logging import getLogger
logging.getLogger('suds.client').setLevel(logging.CRITICAL)
from suds.xsd.doctor import ImportDoctor, Import

# cannot access schema through browser
imp = Import('http://schemas.microsoft.com/exchange/services/2006/messages')
d = ImportDoctor(imp)
client = Client('http:path to wsdl', doctor = d, username='my_username',       
password='my_password')
retVal = client.service.GetServerTimeZones()
print retVal

2 个答案:

答案 0 :(得分:0)

建议使用suds-ews分叉。此外,您还必须实施ntlm身份验证。

答案 1 :(得分:0)

问题有点旧,但是对于那些来这里寻找替代品的人来说,你可以尝试使用suds - EWSWrapper_py,EWS Wrapper python实现的新包装器。它主要关注交换日历,但为进一步发展提供了良好的基础。来源于GIT。

目前,目前的功能包括:

  
      
  • 日历活动的操作:   
        
    • 添加,
    •   
    • 更新,
    •   
    • 删除,
    •   
    • 列表
    •   
    • 同步
    •   
  •   
  • 任务操作:   
        
    • 添加,
    •   
    • 更新,
    •   
    • 删除,
    •   
    • 列表
    •   
  •   
  • 文件夹的操作:   
        
    • 列表
    •   
    • 同步
    •   
  •