使用python修改文件夹的Exchange ACL
尝试读取文件夹的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 *)&
在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的扩展来完成这项工作。我会把它贡献给这个项目,让我们看看它是否受欢迎。