【问题标题】:Get autocomplete address list of Outlook in VBA在 VBA 中获取 Outlook 的自动完成地址列表
【发布时间】:2022-04-03 14:52:32
【问题描述】:

我正在尝试将我所有的“自动填写地址”添加到一个新的联系人文件夹中,但我无法获取这些地址。我所说的“自动填写地址”是当您向某人发送电子邮件并在新电子邮件的“收件人”字段中再次输入时保存的地址。

我知道我可以使用

获取所有全局地址列表
Set objOutlook = CreateObject("Outlook.Application")
Set myNameSpace = objOutlook.GetNamespace("MAPI")    
Set GAL = myNameSpace.AddressLists("Offline Global Address List")

但我怎样才能获得自动填写的地址?

我使用的是 Outlook 2010,我的帐户是 Exchange 帐户。

感谢您的帮助和时间。

编辑

我的完整代码:

Set objOutlook = CreateObject("Outlook.Application")
Set myNameSpace = objOutlook.GetNamespace("MAPI")
Set folder = myNameSpace.GetDefaultFolder(OlDefaultFolders.olFolderInbox)
Set storage = folder.GetStorage("IPM.Configuration.Autocomplete", OlStorageIdentifierType.olIdentifyByMessageClass)
Set propacc = storage.PropertyAccessor
Set got = propacc.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x7C090102")

问题:得到的是空的...

【问题讨论】:

    标签: vba autocomplete outlook


    【解决方案1】:

    而不是

    Set got = propertyAcc.GetProperty(yadayada)
    

    不要使用 Set... 只是

    got = propertyAcc.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x7C090102")
    

    这将给出一个从零开始的文本流中使用的字节数组。
    得到(0)= 13 得到(1)= 240 等等等等……

    从那里,您可以分析每个字节以获取文本...但是当 Redemption 为您执行此操作时,将其全部解析出来会非常难看。事实上,如果你已经在这篇文章中走到了这一步,那么你可能已经整理出,弄清楚如何使用 Redemption 比为此构建自己的解析器更好地利用时间。

    【讨论】:

      【解决方案2】:

      自动完成(昵称)流存储在收件箱文件夹中邮件类别为"IPM.Configuration.Autocomplete" 的隐藏(关联)邮件中。其格式记录在https://msdn.microsoft.com/en-us/library/office/ff625288.aspx。您可以使用MAPIFolder.GetStorage 访问该消息。

      如果使用Redemption 是一个选项(我是它的作者),它会通过RDOStore / RDOSession.Nicknames 集合公开昵称。

      另请注意,如果是 Outlook VBA,您确实需要创建 Outlook.Application 对象的实例,您已经有一个指向该对象的内部应用程序变量。

      【讨论】:

      • 感谢您的回答。不幸的是,我无法使用 Redemption Library。有没有办法用存储对象提取昵称?
      • 是的,您需要解析该隐藏消息的 0x7C090102 属性中存储的数据。
      • 好的,我试过Set propacc = storage.PropertyAccessorSet got = propertyAcc.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x7C090102") 但它似乎不起作用(变量 got 为空)。如何获取和解析数据?
      • 好的,现在你必须解析它。
      • 您能在 OutlookSpy 中看到该属性吗(单击 IMAPIFolder,转到“关联内容”选项卡)?
      猜你喜欢
      • 1970-01-01
      • 2016-04-02
      • 2016-07-03
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 1970-01-01
      • 2013-10-24
      • 2020-08-06
      相关资源
      最近更新 更多