在Outlook VBA中提取getTable()收件人电子邮件地址的最快方法

时间:2019-08-14 18:15:17

标签: vba search outlook

我在这里找到了一些有关试图从getTable()结果中获取收件人信息的个人的资料,其中一个资料指向了Microsoft论坛,MVP指出了一个潜在的解决方案,但并未对此进行全面扩展。我当前的代码如下:

    Set MyTable = MySearch.GetTable
MyTable.Columns.Add ("http://schemas.microsoft.com/mapi/proptag/0x0E03001E")

Do Until MyTable.EndOfTable
    Set nextRow = MyTable.GetNextRow()
    For Each OutRecip In Session.GetItemFromID(nextRow("EntryID")).Recipients
        OutRecip.PropertyAccessor.GetProperty ("http://schemas.microsoft.com/mapi/proptag/0x39FE001E")
    Next
Loop

当前,我必须提取条目ID,然后找到邮件项目,然后从中获取收件人列表。考虑到我使用的是要有效的高级搜索功能,我发现它运行缓慢,并希望找到一种更快的方法。是否有任何具有to,cc和bcc的架构属性,我可以使用vba中的某种文本函数以某种方式提取其中的内容?

1 个答案:

答案 0 :(得分:2)

不能从MAPI表中提取收件人信息。最好的办法是PR_DISPLAY_TO / PR_DISPLAY_CC / PR_DISPLAY_BCC,但是这些消息属性(通常)不包含电子邮件地址或条目ID。

您可以基于收件人属性创建搜索条件,但是为此需要扩展MAPI(C ++或Delphi)或兑换(任何语言)。