我已经设置了一个微软交换网络服务,允许我向我的Microsoft Outlook帐户发送和接收数据。
我试图在我的个人资料下获取已保存的联系人信息,然后以与网页上的Microsoft Outlook 2013桌面应用程序类似的格式显示此信息。
不幸的是,我注意到,我允许Outlook为我自动完成的任何电子邮件(即识别我开始输入的电子邮件地址是在我的地址簿中,我按回车键选择建议的电子邮件),字符串值I回到我的网页上似乎是文件夹根网址而不是电子邮件值本身。
即。 " / O = ParentFolder / OU =组别1 / cn =收件人/ CN =地址1"而不是" address1@email.co.uk"
我的问题是,有没有办法总是返回实际的电子邮件值,无论是否使用自动完成功能或是否有我可以使用的另一个功能,允许我发送根值并获取相应的电子邮件字符串?
感谢
答案 0 :(得分:1)
这是" EX"的实际电子邮件地址。 (而不是" SMTP")。您是否将GAL用户添加到“联系人”文件夹中?您将需要Email1OriginalDisplayName属性(DASL名称http://schemas.microsoft.com/mapi/id/ {00062004-0000-0000-C000-000000000046} / 8084001F)。您应该能够使用EWS检索它。查看与OutlookSpy的联系人(单击IMessage按钮)。
答案 1 :(得分:0)
花了一天的时间尝试使用几乎所有描述的方法检索Email1OriginalDisplayName
但没有成功,我尝试了这种方法并且它已经有效了。所以我觉得值得澄清一下,通过添加vb.net
代码片段为我做了更多。
Dim PropAccessor As Microsoft.Office.Interop.Outlook.PropertyAccessor = oContact.PropertyAccessor
SMTPaddr = PropAccessor.GetProperty("http://schemas.microsoft.com/mapi/id/{00062004-0000-0000-C000-000000000046}/8084001F")
其中oContact
是outlook.contactItem
,SMTPaddr
是字符串。
我花了5个小时的研究才得到这个答案 - 这是唯一真正有用的答案。