使用python修改文件夹的Exchange ACL

使用python修改文件夹的Exchange ACL,python,exchange-server,mapi,pywin32,Python,Exchange Server,Mapi,Pywin32,尝试读取文件夹的ACL表时,遇到以下问题: 在C++工具(MFCMAPI)中,该方法用于获得可用数据类型: // Open the table in an IExchangeModifyTable interface EC_H(lpMAPIProp->OpenProperty( ulPropTag, (LPGUID)&IID_IExchangeModifyTable, 0, MAPI_DEFERRED_ERRORS, (LPUNKNOWN FAR *)&

尝试读取文件夹的ACL表时,遇到以下问题:

在C++工具(MFCMAPI)中,该方法用于获得可用数据类型:

// Open the table in an IExchangeModifyTable interface
 EC_H(lpMAPIProp->OpenProperty(
  ulPropTag,
  (LPGUID)&IID_IExchangeModifyTable,
  0,
  MAPI_DEFERRED_ERRORS,
  (LPUNKNOWN FAR *)&lpExchTbl));
我想在python win32中实现这一点:

table = mystore.OpenProperty(mapitags.PR_ACL_TABLE, IID_IExchangeModifyTable, 0 , mapi.MAPI_DEFERRED_ERRORS)
但MAPI扩展似乎不知道IID_IExchangeModifyTable类型。我刚刚得到一个错误:

AttributeError:
“模块”对象没有属性“IID\U IExchangeModifyTable

有人知道通过MAPI(和python)从exchange获取和修改ACL数据的其他方法吗

谢谢 -侯爵

根据,您需要一个PyIID对象

但在几乎所有情况下,, 期望CLSID/IID作为 param将接受字符串或 对象或本机PyIID对象


也就是说,我已经看到了与OpenProperty方法一起使用的mapi.IID_IMessage

IExchangeModifyTable在edkmdb.h中声明 您是否在python中使用mapi33?该接口是否在mapi33中声明?
您可以在Redemption中使用RDOFolder.ACL:

看起来您正在尝试访问邮件存储对象上的ACL表。据我所知,ACL表特定于文件夹对象,不存在于消息存储中。尝试使用“mystore”对象打开存储中的特定文件夹,然后调用文件夹对象上的OpenProperty来检索ACL表。确保打开文件夹对象时也指定了MAPI\u NO\u缓存和MAPI\u MODIFY标志。

只是一个想法:是否尝试使用win32 com makepy实用程序生成此类型?不确定,因为我没有安装exchange,也不太熟悉此API。我希望它能帮助Hanks Mark,我以前试过mapi.IID_IExchangeModifyTable,也许这只是我的复制粘贴错误。问题是Python MAPI没有IID_IExchangeModifyTable接口的实现。这在bugtracker上得到了证实:感谢edkmdb.h的提示。我使用MFCMAPI中的一些LIB编写了pywin32 mapi的扩展来完成这项工作。我会把它贡献给这个项目,让我们看看它是否受欢迎。