如何从选定的电子邮件中获取对话ID?

时间:2012-01-13 02:04:09

标签: vba outlook outlook-vba

我想获取对话ID(位于邮件标题中)。

我认为在outlook库中它位于MailItem类和ConversationID成员中。如果从选定的电子邮件,打开的电子邮件或NewMail事件发生时的事件中获取该信息,我感到很遗憾。

任何帮助都将非常感谢!!

1 个答案:

答案 0 :(得分:2)

此示例将在消息框中显示对话ID:

Sub GetConvID()

Dim obj As Object
Dim msg As Outlook.mailItem

Set obj = GetCurrentItem

If TypeName(obj) = "MailItem" Then
  Set msg = obj
  MsgBox msg.ConversationID
End If

End Sub

Function GetCurrentItem() As Object
' returns reference to current item, either the one
' selected (Explorer), or the one currently open (Inspector)

  Select Case True
  Case IsExplorer(Application.ActiveWindow)
    Set GetCurrentItem = ActiveExplorer.Selection.item(1)
  Case IsInspector(Application.ActiveWindow)
    Set GetCurrentItem = ActiveInspector.CurrentItem
  End Select

End Function
Function IsExplorer(itm As Object) As Boolean
  IsExplorer = (TypeName(itm) = "Explorer")
End Function
Function IsInspector(itm As Object) As Boolean
  IsInspector = (TypeName(itm) = "Inspector")
End Function

关于NewMail事件:

  

NewMail事件对您希望的场景非常有用   收到新电子邮件时通知。如果你想处理   到达收件箱的商品,请考虑使用ItemAdd事件   收件箱中的项目集合。 ItemAdd事件传递一个   引用添加到文件夹的每个项目。

要在此活动中获取对所选电子邮件的引用,请使用ActiveExplorer.Selection.item(1)。要获取对已打开电子邮件的引用,请使用ActiveInspector.CurrentItem