首页 > 解决方案 > 有没有办法使用 VBA 从 Outlook 配置文件中删除额外的邮箱?

问题描述

我们正在将邮箱从多林环境中的 Exchange 组织迁移到 Exchange Online。当我们从其中一个林迁移共享邮箱并且用户将该邮箱映射到他们的配置文件时,它会导致迁移后出现多个用户体验问题,因为配置文件正在寻找它不再存在的邮箱。我们希望找到一种方法,通过将其从个人资料中删除来以编程方式更新有权访问此邮箱的人的个人资料。到目前为止,还没有找到解决方案。我没有使用 VBA 的经验,但其他人建议它可能会起作用。有谁知道如何做这样的事情?

标签: vbaoutlook

解决方案


Outlook 对象模型不允许您删除委托存储。您可以使用 Extended MAPI(C++ 或 Delphi)或Redemption(任何语言)。在 Redemption 的情况下,您可以使用RDOStore .Remove方法:创建RDOSession对象的实例,将其MAPIOBJECT属性设置为Application.Session.MAPIOBJECTfrom Outlook(这将确保 Redemption 和 Outlook 使用相同的 MAPI 会话),遍历RDOSession.Stores集合,找到按名称或通过检查存储类型名称(TypeName()将返回“RDOExchangeDelegateMailboxStore”)存储问题,调用RDOStore.Remove.

也可以在不运行 Outlook 或使用ProfMan库(与 Redemption 的可分发版本附带)登录配置文件的情况下删除存储,但它涉及更多,因为 ProfMan 需要对存储配置方式的低级别知识在 MAPI 中。


推荐阅读