Anzeigen von Adresseintragsdetails für den Absender einer Nachricht

Für den Empfänger jeder E-Mail-Nachricht, die durch einen Transportanbieter übermittelt werden kann, ist in der Adressbuchhierarchie des Anbieters für die Sitzung ein Adresseintrag vorhanden. In diesem Thema wird das programmatische Anzeigen der Adresseintragsinformationen des Absenders eines zurzeit in einem Inspektor angezeigten E-Mail-Elements beschrieben.

  1. Verwenden Sie für das zurzeit angezeigte E-Mail-Element das PropertyAccessor -Objekt, um die Eintrags-ID des Absenders zu ermitteln.

  2. Verwenden Sie die NameSpace.GetAddressEntryFromID -Methode der aktuellen Sitzung, um ein AddressEntry -Objekt zurückzugeben.

  3. Verwenden Sie die AddressEntry.AddressEntryUserType -Eigenschaft, um den Typ des AddressEntry-Objekts zu ermitteln, und zeigen Sie dann die Details entsprechend an:

    • Wenn der Adresseintrag ein Kontaktelement im Outlook-Kontaktordner ist oder die SMTP-Adresse des Absenders mit einer E-Mail-Adresse eines Kontaktelements im Standardordner Kontakte übereinstimmt, zeigen Sie die Adresseintragsinformationen in einem Kontaktinspektor an. Um E-Mail-Adressen im Ordner Kontakte abzugleichen, verwenden Sie das Table-Objekt, um einen schnellen Filter nach den Eigenschaften ContactItem.Email1Address, ContactItem.Email2Address und ContactItem.Email3Address von Elementen in diesem Ordner durchzuführen.
  • In allen anderen Fällen zeigen Sie die Adresseintragsinformationen im Dialogfeld eigenschaften Email an.

HinwBemerkungeneise

So führen Sie dieses Codebeispiel aus

  1. Öffnen Sie eine E-Mail-Nachricht, damit sie im aktiven Inspektor angezeigt wird.

  2. Platzieren Sie den Code im integrierten Modul ThisOutlookSession.

  3. Führen Sie die TestAddressEntryDetails Prozedur aus, um Adresseintragsdetails für die E-Mail-Nachricht im aktiven Inspektor anzuzeigen:

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

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.