使用ConversationID在Outlook中显示电子邮件

时间:2012-12-07 17:25:45

标签: vba outlook

使用Outlook VBA脚本,是否可以根据从Mailitem类中获取的唯一标识符显示电子邮件?

即。我遍历一个文件夹并使用SenderName,Subject,SentOn和ConversationID填充列表框。

For i = oFolder.Items.Count To 1 Step -1
    Me.ListBox1.AddItem oFolder.Items.Item(i).ConversationID
Next i

列表框位于用户表单中,我希望能够根据ConversationID显示电子邮件。我不确定如何实际做到这一点,但也许是这样的:

Dim Msg As Outlook.MailItem
Set Msg = oFolder.GetObjectFromConversationID(Me.ListBox1.Value).Display
Msg.Display

1 个答案:

答案 0 :(得分:6)

我找到了基于此的答案:https://stackoverflow.com/a/7439554/757856

基本上,您必须使用MailItem.EntryID,而不是ConversationID

我使用了与上面链接相同的代码,但我使用了后期绑定而不是早期绑定。以下代码将打开一封Outlook电子邮件,其中包含EntryID

Dim oNamespace As Object
Dim Msg As Object
Set oNamespace = oOlApp.GetNamespace("MAPI")
Set Msg = oNamespace.GetItemFromID(EntryID)
Msg.Display