使用python修改文件夹的Exchange ACL

2024-09-30 23:37:48 发布

您现在位置:Python中文网/ 问答频道 /正文

在尝试读取文件夹的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中执行以下操作:

^{pr2}$

但MAPI扩展似乎不知道IID\U IExchangeModifyTable类型。我刚得到一个错误:

属性错误:'module' object has no attribute 'IID_IExchangeModifyTable'

有人知道另一种通过MAPI(和python)从exchange获取和修改ACL数据的方法吗?在

谢谢 -侯爵


Tags: 工具the方法in文件夹an错误table
3条回答

IExchangeModifyTable在edkmdb.h中声明 您在python中使用mapi33吗?那个接口是在mapi33中声明的吗? 你可以用RDOFolder.ACL赎回:http://www.dimastr.com/redemption/rdo/RDOACL.htm

根据docs,您需要一个pyid对象。

However, in almost all cases, functions that expect a CLSID/IID as a param will accept either a string object, or a native PyIID object.

也就是说,我见过mapi.IID\u消息与OpenProperty方法一起使用。

您似乎正在尝试访问消息存储对象上的ACL表。据我所知,ACL表是特定于文件夹对象的,不存在于消息存储中。尝试使用“mystore”对象打开存储区中的特定文件夹,然后对folder对象调用OpenProperty来检索ACL表。确保打开的文件夹对象同时指定了MAPI_NO\u缓存和MAPI_MODIFY标志。

相关问题 更多 >