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:
Wenn der Typ des AddressEntry -Objekts ein Exchange-Benutzer ist, ruft
ResolveDisplayNameToSMTP
AddressEntry.GetExchangeUser auf, um das entsprechende ExchangeUser -Objekt abzurufen. ExchangeUser.PrimarySmtpAddress stellt die E-Mail-Adresse bereit, die dem Anzeigenamen zugeordnet ist.Wenn das AddressEntry -Objekt eine Exchange-Verteilerliste ist, ruft
ResolveDisplayNameToSMTP
AddressEntry.GetExchangeDistributionList auf, um ein ExchangeDistributionList -Objekt abzurufen. ExchangeDistributionList.PrimarySmtpAddress stellt die E-Mail-Adresse bereit, die dem Anzeigenamen zugeordnet ist.
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.