如何使用emailid检索Outlook属性?

时间:2018-12-05 05:15:57

标签: c# outlook

我想从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(国家/地区,部门)

请帮助我。

2 个答案:

答案 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收件人等。