Exibir detalhes da entrada do endereço para o remetente de uma mensagem
O destinatário de cada email entregue por um provedor de transporte tem uma entrada de endereço na hierarquia de catálogos de endereços do provedor na sessão. Este tópico descreve como exibir programaticamente as informações de entrada de endereço do remetente de um item de email atualmente exibido em um inspetor.
Para o item de email exibido atualmente, use o objeto PropertyAccessor para determinar a ID de entrada do remetente.
Use o método NameSpace.GetAddressEntryFromID da sessão atual para retornar um objeto AddressEntry .
Use a propriedade AddressEntry.AddressEntryUserType para determinar o tipo do AddressEntry e exiba os detalhes de acordo:
- Se a entrada de endereço for um item de contato na pasta Contatos do Outlook ou se o endereço SMTP do remetente corresponder a um endereço de email de um item de contato na pasta Contatos padrão, exiba as informações de entrada de endereço em um inspetor de contatos. Para corresponder endereços de email na pasta Contatos, use o objeto Table para fazer um filtro rápido nas propriedades ContactItem.Email1Address, ContactItem.Email2Address e ContactItem.Email3Address dos itens nessa pasta.
- Em todos os outros casos, exiba as informações de entrada do endereço na caixa de diálogo Propriedades Email.
Comentários
Para executar este exemplo de código:
Abra um email para que seja exibido no inspetor ativo.
Coloque o código no módulo interno ThisOutlookSession.
Execute o
TestAddressEntryDetails
procedimento para exibir detalhes da entrada do endereço na mensagem de email no inspetor ativo:
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
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.