Zuordnen eines Anzeigenamens zu einer Email Adresse

Dieses Thema zeigt ein Codebeispiel in Visual Basic for Applications (VBA), das einen Anzeigenamen annimmt und versucht, ihn einer E-Mail-Adresse zuzuordnen, die dem Messagingsystem in der aktuellen Sitzung bekannt ist.

Für jede Outlook-Sitzung definiert der Transportanbieter einen Satz von Adressbuchcontainern, in die das Messagingsystem Nachrichten übermitteln kann. Jeder Adressbuchcontainer entspricht einer Adressliste in Outlook. Wenn ein Anzeigename in der Gruppe von Adressbuchcontainern definiert ist, kann der Anzeigename in der aktuellen Sitzung aufgelöst werden, und es gibt einen Eintrag in einer Adressliste, der diesem Anzeigenamen zugeordnet ist. Beachten Sie, dass Einträge in einer Adressliste verschiedene Typen aufweisen können, einschließlich eines Exchange-Benutzers und einer Exchange-Verteilerliste.

In diesem Codebeispiel verwendet die Funktion ResolveDisplayNameToSMTP den Anzeigenamen "Dan Wilson" als Beispiel. Zunächst wird versucht, zu überprüfen, ob der Anzeigename in einer Adressliste definiert ist, indem ein Recipient-Objekt basierend auf diesem Anzeigenamen erstellt und dann Recipient.Resolve aufgerufen wird. Wenn der Name aufgelöst wird, ResolveDisplayNameToSMTP verwendet das AddressEntry-Objekt , das dem Recipient-Objekt zugeordnet ist, um den Typ und, falls möglich, die E-Mail-Adresse weiter abzurufen:

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

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.