Mapper un nom d’affichage à une adresse Email
Cette rubrique présente un exemple de code dans Visual Basic pour Applications (VBA) qui prend un nom d’affichage et tente de le mapper à une adresse e-mail connue du système de messagerie dans la session active.
Pour chaque session Outlook, le fournisseur de transport définit un ensemble de conteneurs de carnets d’adresses auxquels le système de messagerie peut remettre des messages. Chaque conteneur de carnet d’adresses correspond à une liste d’adresses dans Outlook. Si un nom d’affichage est défini dans l’ensemble de conteneurs de carnet d’adresses, le nom complet peut être résolu dans la session active et il existe une entrée dans une liste d’adresses qui correspond à ce nom complet. Notez que les entrées d’une liste d’adresses peuvent être de différents types, notamment un utilisateur Exchange et une liste de distribution Exchange.
Dans cet exemple de code, la fonction ResolveDisplayNameToSMTP
utilise le nom d’affichage « Dan Wilson » comme exemple. Il tente d’abord de vérifier que le nom complet est défini dans une liste d’adresses en créant un objet Recipient basé sur ce nom d’affichage, puis en appelant Recipient.Resolve. Si le nom est résolu, ResolveDisplayNameToSMTP
utilise l’objet AddressEntry mappé à l’objet Recipient pour obtenir davantage le type et, si possible, l’adresse e-mail :
Si le type de l’objet AddressEntry est un utilisateur Exchange,
ResolveDisplayNameToSMTP
appelle AddressEntry.GetExchangeUser pour obtenir l’objet ExchangeUser correspondant. ExchangeUser.PrimarySmtpAddress fournit l’adresse e-mail qui correspond au nom complet.Si l’objet AddressEntry est une liste de distribution Exchange,
ResolveDisplayNameToSMTP
appelle AddressEntry.GetExchangeDistributionList pour obtenir un objet ExchangeDistributionList . ExchangeDistributionList.PrimarySmtpAddress fournit l’adresse e-mail qui correspond au nom complet.
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
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.