Отображение сведений о записи адреса для отправителя сообщения
Получатель каждого почтового сообщения, доставляемого поставщиком транспорта, имеет запись адреса в иерархии адресных книг поставщика для сеанса. В этом разделе описывается, как программным образом отобразить сведения о вводе адреса отправителя почтового элемента, который в настоящее время отображается в инспекторе.
Для текущего отображаемого почтового элемента используйте объект PropertyAccessor , чтобы определить идентификатор записи отправителя.
Используйте метод NameSpace.GetAddressEntryFromID текущего сеанса, чтобы вернуть объект AddressEntry .
Используйте свойство AddressEntry.AddressEntryUserType , чтобы определить тип AddressEntry, а затем отобразить сведения соответствующим образом:
- Если адрес является контактным элементом в папке "Контакты Outlook" или SMTP-адрес отправителя соответствует адресу электронной почты одного элемента контакта в папке "Контакты" по умолчанию, отобразите сведения о вводе адреса в инспекторе контактов. Чтобы сопоставить адреса электронной почты в папке Контакты, используйте объект Table для быстрого фильтрации свойств ContactItem.Email1Address, ContactItem.Email2Address и ContactItem.Email3Address элементов в этой папке.
- Во всех остальных случаях отображайте сведения о вводе адреса в диалоговом окне Свойства Email.
Замечания
Чтобы запустить этот пример кода, выполните следующее:
Откройте сообщение, чтобы оно отображалось в активном инспекторе.
Поместите код во встроенный модуль ThisOutlookSession .
Выполните процедуру
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 и обратная связь.