我想从Outlook中检索国家,部门,显示名称属性。 手动使用ctrl + k完成操作,然后右键单击Outlook属性。
如果记录很多,那么它很耗时。
我有一个邮件ID,例如var email="Something@domain.com"
使用
var a=outlook.Application.CreateReciepent("Email@hjg.com");
a.resolve();
var name=a.name;
能够获取显示名称。
如何获取相应的电子邮件ID(国家/地区,部门)
请帮助我。
答案 0 :(得分:1)
您将需要在引用中添加System.DirectoryServices,而下面的代码中的userName是NT ID(无域)。如果要查找更多属性,则需要在线搜索确切的字符串。
DirectorySearcher搜索=新的DirectorySearcher();
// specify the search filter
search.Filter = "(&(objectClass=user)(anr=" + userName + "))";
// specify which property values to return in the search
search.PropertiesToLoad.Add("displayName"); // display name
search.PropertiesToLoad.Add("co"); // country name
search.PropertiesToLoad.Add("department"); // department
// perform the search
SearchResult result = search.FindOne();
答案 1 :(得分:0)
您快到了-如果收件人解析为GAL用户,则需要a.AddressEntry.GetExchangeUser
。如果不为null,则可以访问其任何属性-请参见https://docs.microsoft.com/en-us/office/vba/api/outlook.exchangeuser。
或者您可以使用AddressEntry.PropertyAccessor.GetProperty
直接访问任何MAPI属性。您可以在OutlookSpy中查看可用的属性及其DASL名称-单击IAddrbook,IMAPISession | QueryIdentity或IMessage | GetRecipientTable |双击GAL收件人等。