平台:Outlook 2013作为我的电子邮件客户端。
问题:我的联系人存储在联系人通讯录中,而不是GAL;
当收到某人的电子邮件时,我在FROM字段中看到的内容与Outlook中的“我的联系人通讯簿”中的内容不同。
我看到,我认为是用户在各自的电子邮件服务提供商中设置帐户的方式。
作为一个例子,我有“好朋友”,但当我收到这个人的电子邮件时,它会显示,例如“约翰史密斯”。
如何让Outlook“知道”在MY联系人地址中显示我的联系人信息?
答案 0 :(得分:1)
您可以阅读发件人电子邮件地址(MailItem.SenderEmailAddress
),打开“联系人”文件夹(Namespace.GetDefaultFolder(olFolerContacts)
),使用MAPIFolder.Items.Find
搜索匹配的联系人,并使用"([Email1Address] = 'user@domain.demo') or ([Emai21Address] = 'user@domain.demo') or ([Email3Address] = 'user@domain.demo')"
等查询。
获得ContactItem对象后,请阅读其FileAs属性,并使用MailItem.PropertyAccessor.SetProperty在原始邮件上设置PR_SENDER_NAME和PR_SENT_REPRESENTING_NAME属性。属性的DASL名称是
"http://schemas.microsoft.com/mapi/proptag/0x0C1A001F"
和
"http://schemas.microsoft.com/mapi/proptag/0x0042001F"