メッセージの送信者にアドレス エントリの詳細を表示する
トランスポート プロバイダーが配信できる各メール メッセージの受信者は、プロバイダーのセッションのアドレス帳の階層構造にアドレス エントリを持ちます。 このトピックでは、現在インスペクターに表示されているメール アイテムの送信者のアドレス エントリ情報をプログラムで表示する方法を説明します。
現在表示されているメール アイテムの場合は、 PropertyAccessor オブジェクトを使用して、送信者のエントリ ID を決定します。
AddressEntry オブジェクトを返すには、現在のセッションの NameSpace.GetAddressEntryFromID メソッドを使用します。
AddressEntry.AddressEntryUserType プロパティを使用して AddressEntry の種類を特定し、それに応じて詳細を表示します。
- アドレスエントリが Outlook 連絡先フォルダー内の連絡先アイテムである場合、または送信者の SMTP アドレスが既定の連絡先フォルダー内の 1 つの連絡先アイテムのメール アドレスと一致する場合は、連絡先インスペクターにアドレス入力情報を表示します。 Contacts フォルダー内のメール アドレスを一致させるには、Table オブジェクトを使用して、そのフォルダー内のアイテムの ContactItem.Email1Address、 ContactItem.Email2Address、 ContactItem.Email3Address プロパティに対してクイック フィルターを実行します。
- それ以外の場合は、[Emailプロパティ] ダイアログ ボックスにアドレス入力情報を表示します。
注釈
このコード サンプルを実行するには
メール メッセージを開き、アクティブなインスペクターに表示します。
コードは、組み込みの ThisOutlookSession モジュールに配置します。
次の手順を
TestAddressEntryDetails
実行して、アクティブなインスペクターのメール メッセージにアドレスエントリの詳細を表示します。
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
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。