首页 > 解决方案 > 如何访问 Outlook vsto 中的“收件人”自动填充电子邮件地址?缓存的联系人

问题描述

https://i.stack.imgur.com/1ZuCQ.png

上图是电子邮件地址的“收件人”部分

标签: c#vstooutlook-addin

解决方案


自动完成(又名昵称)流以隐藏(关联)消息的形式存储在收件箱文件夹中,消息类别为“IPM.Configuration.Autocomplete”。您可以在OutlookSpy中看到数据:转到收件箱文件夹,单击 OutlookSpy 功能区上的 IMAPIFolder 按钮,转到“关联内容”选项卡,找到 PR_MESSAGE_CLASS ==“IPM.Configuration.Autocomplete”的消息,选择PR_ROAMING_BINARYSTREAM属性见其内容。

您可以使用 Outlook 对象模型 ( ) 打开该邮件,使用MAPIFolder.GetStorage("IPM.Configuration.Autocomplete", OlStorageIdentifierType.olIdentifyByMessageClass读取属性PropertyAccessor.GetProperty,然后对其进行解析。请注意,无法使用 PropertyAccessor 打开大型自动完成流。

如果使用Redemption选项,它会将自动完成功能公开为RONicknames集合:

 set Session = CreateObject("Redemption.RDOSession")
 Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set Nicknames = Session.GetNicknames
 for each NickName in NickNames
     Debug.Print NickName.Name & " - " & NickName.SmtpAddress
 next

推荐阅读