使用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
答案 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