显示邮件发件人的地址条目详细信息

每个可由传输提供程序传递的邮件的收件人在提供程序用于该会话的通讯簿层次结构中均具有一个地址条目。 本主题描述了如何以编程方式显示检查器中当前显示的邮件项目的发件人的地址条目信息。

  1. 对于当前显示的邮件项,请使用 PropertyAccessor 对象确定发件人的条目 ID。

  2. 使用当前会话的 NameSpace.GetAddressEntryFromID 方法可返回 AddressEntry 对象。

  3. 使用 AddressEntry.AddressEntryUserType 属性确定 AddressEntry 的类型,然后相应地显示详细信息:

    • 如果地址条目是 Outlook 联系人文件夹中的联系人项目,或者发件人的 SMTP 地址与默认“联系人”文件夹中一个联系人项目的电子邮件地址匹配,则在“联系人”检查器中显示地址条目信息。 若要匹配“联系人”文件夹中的电子邮件地址,请使用 Table 对象对该文件夹中项目的 ContactItem.Email1AddressContactItem.Email2AddressContactItem.Email3Address 属性执行快速筛选。
  • 在所有其他情况下,在“Email属性”对话框中显示地址条目信息。

备注

要运行此代码示例:

  1. 打开一个邮件使其显示在活动检查器中。

  2. 将代码放在内置的 ThisOutlookSession 模块中。

  3. TestAddressEntryDetails运行过程,在活动检查器中显示邮件的地址条目详细信息:

Sub TestAddressEntryDetails() 
 Dim oMail As MailItem 
 
 Set oMail = Application.ActiveInspector.CurrentItem 
 DisplayAddressEntryDetails oMail 
End Sub 
 
 
Sub DisplayAddressEntryDetails(oM As MailItem) 
 Dim oPA As Outlook.PropertyAccessor 
 Dim oContact As Outlook.ContactItem 
 Dim oSender As Outlook.AddressEntry 
 Dim SenderID As String 
 
 'Create an instance of PropertyAccessor 
 Set oPA = oM.PropertyAccessor 
 
 'Obtain PidTagSenderEntryId and convert to string 
 SenderID = oPA.BinaryToString _ 
 (oPA.GetProperty("https://schemas.microsoft.com/mapi/proptag/0x0C190102")) 
 
 'Obtain AddressEntry Object of the sender 
 Set oSender = Application.Session.GetAddressEntryFromID(SenderID) 
 
 'Examine AddressEntryUserType 
 If oSender.AddressEntryUserType = olOutlookContactAddressEntry Then 
 'Obtain ContactItem for AddressEntry 
 Set oContact = oSender.GetContact 
 oContact.Display 
 'Display details for Exchange or SMTP sender 
 Else 
 oSender.Details 
 End If 
End Sub

支持和反馈

有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。