我正在寻找一个自动监控脚本,以编程方式从另一个用户的Exchange 2003收件箱中检索信息。我有工作的C ++代码登录到MAPI并连接到我自己的收件箱。我还可以使用控制面板 - >邮件小程序将另一个用户的邮箱配置到我的个人资料中,我的代码可以访问该方式。但是,这是在安装了Outlook的桌面上完成的,它提供了更丰富的邮件配置文件编辑器。
由于这将在服务器上运行,我宁愿根本不安装Outlook。相反,我可以安装MAPI client。然后,我创建一个简单的MAPI应用程序,使用带有MAPILogonEx()
标志的MAPI_LOGON_UI
弹出邮件配置文件向导。但是,基本MAPI客户端没有配置其他用户的邮箱的功能。作为一项要求,我只能将此脚本作为监控应用程序的服务帐户运行,因此我无法将其作为我想要的邮箱运行。
是否仍然可以使用基本MAPI客户端连接到其他用户的邮箱(假设已授予权限)?或者是否绝对有必要为此功能安装Outlook?
答案 0 :(得分:1)
我明白了......我不确定如何明确地做到这一点;这通常是用错误的标志调用CreateStoreEntryID
的副作用。你想做什么可能是:
IID_IExchangeManageStore
CreateStoreEntryID
然后按条目ID
打开该商店LPEXCHANGEMANAGESTORE mapiObject = NULL;
store->QueryInterface( IID_IExchangeManageStore, (LPVOID *) &mapiObject);
mapiObject->CreateStoreEntryID( server, mailbox, OPENSTORE_TAKE_OWNERSHIP |
OPENSTORE_USE_ADMIN_PRIVILEGE, &len, &buffer);
//Call OpenEntry on the entry id
如果您需要更详细的示例,请搜索CreateStoreEntryID
的MFC MAPI项目的来源。如果您有其他问题,最好的答案是microsoft.public.win32.programmer.messaging
新闻组。
答案 1 :(得分:1)
我强烈建议您使用Microsoft Exchange MAPI客户端(因为您已链接)。它被设计为比这些库的Outlook版本更强大。对于扩展MAPI,您应该发现Outlook和Exchange Server之间的API没有区别。
您需要使用扩展MAPI(如Cain TS Random所述)打开其他邮件存储,当然您的应用程序需要以具有Exchange服务器相应权限的Windows用户身份登录。
答案 2 :(得分:0)
您是否查看了ConfigureMsgService?我认为这可以与Exchange MAPI一起使用,或者你是说你尝试过它而且它不起作用?