Поделиться через


Отображение сведений о записи адреса для отправителя сообщения

Получатель каждого почтового сообщения, доставляемого поставщиком транспорта, имеет запись адреса в иерархии адресных книг поставщика для сеанса. В этом разделе описывается, как программным образом отобразить сведения о вводе адреса отправителя почтового элемента, который в настоящее время отображается в инспекторе.

  1. Для текущего отображаемого почтового элемента используйте объект PropertyAccessor , чтобы определить идентификатор записи отправителя.

  2. Используйте метод NameSpace.GetAddressEntryFromID текущего сеанса, чтобы вернуть объект AddressEntry .

  3. Используйте свойство AddressEntry.AddressEntryUserType , чтобы определить тип AddressEntry, а затем отобразить сведения соответствующим образом:

    • Если адрес является контактным элементом в папке "Контакты Outlook" или SMTP-адрес отправителя соответствует адресу электронной почты одного элемента контакта в папке "Контакты" по умолчанию, отобразите сведения о вводе адреса в инспекторе контактов. Чтобы сопоставить адреса электронной почты в папке Контакты, используйте объект Table для быстрого фильтрации свойств ContactItem.Email1Address, ContactItem.Email2Address и ContactItem.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 и обратная связь.