Compartilhar via


Mapear um nome de exibição para um endereço Email

Este tópico mostra um exemplo de código em Visual Basic for Applications (VBA) que usa um nome de exibição e tenta mapeá-lo para um endereço de email conhecido pelo sistema de mensagens na sessão atual.

Para cada sessão do Outlook, o provedor de transporte define um conjunto de contêineres de catálogo de endereços para os quais o sistema de mensagens pode entregar mensagens. Cada contêiner de catálogo de endereços corresponde a uma lista de endereços no Outlook. Se um nome de exibição for definido no conjunto de contêineres do catálogo de endereços, o nome da exibição poderá ser resolvido na sessão atual e haverá uma entrada em uma lista de endereços que mapeia para esse nome de exibição. Observe que as entradas em uma lista de endereços podem ser de vários tipos, incluindo um usuário do Exchange e uma lista de distribuição do Exchange.

Neste exemplo de código, a função ResolveDisplayNameToSMTP usa o nome de exibição "Dan Wilson" como exemplo. Primeiro, ele tenta verificar se o nome de exibição está definido em uma lista de endereços criando um objeto Destinatário com base nesse nome de exibição e chamando Destinatário.Resolver. Se o nome for resolvido, use ResolveDisplayNameToSMTP o objeto AddressEntry mapeado para o objeto Destinatário para obter ainda mais o tipo e, se possível, o endereço de email:

Sub ResolveDisplayNameToSMTP() 
 Dim oRecip As Outlook.Recipient 
 Dim oEU As Outlook.ExchangeUser 
 Dim oEDL As Outlook.ExchangeDistributionList 
 
 Set oRecip = Application.Session.CreateRecipient("Dan Wilson") 
 oRecip.Resolve 
 If oRecip.Resolved Then 
 Select Case oRecip.AddressEntry.AddressEntryUserType 
 Case OlAddressEntryUserType.olExchangeUserAddressEntry 
 Set oEU = oRecip.AddressEntry.GetExchangeUser 
 If Not (oEU Is Nothing) Then 
 Debug.Print oEU.PrimarySmtpAddress 
 End If 
 Case OlAddressEntryUserType.olExchangeDistributionListAddressEntry 
 Set oEDL = oRecip.AddressEntry.GetExchangeDistributionList 
 If Not (oEDL Is Nothing) Then 
 Debug.Print oEDL.PrimarySmtpAddress 
 End If 
 End Select 
 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.