EWS托管 - 是否可以使用“FindItems”获取完整的“发件人”详细信息?

时间:2014-08-23 00:33:28

标签: exchangewebservices ews-managed-api

我正在使用Exchange Web服务托管API使用FindItems搜索邮件文件夹。我正在使用的代码是:

var search = new SearchFilter.ContainsSubstring(
    ItemSchema.Subject,
    "subject I want");

ItemView searchView = new ItemView(9999);
searchView.PropertySet = new PropertySet(
   BasePropertySet.IdOnly,
   ItemSchema.Subject,
   ItemSchema.DateTimeReceived,
   EmailMessageSchema.From);
searchView.OrderBy.Add(
   ItemSchema.DateTimeReceived,
   SortDirection.Descending);
searchView.Traversal = ItemTraversal.Shallow;

var searchResults = _service.FindItems(
   folderToSearch.Id,
   search,
   searchView);

搜索工作正常,我在searchView.PropertySet中指定的属性会被返回。问题是它不会返回From详细信息的全部

我迭代searchResults,并根据需要将项目转换为EmailMessagePostItem,以访问From属性,该属性返回EmailAddress个对象。在该对象上,设置了Name属性,但Address为空。

如果我然后绑定该项目,例如:

var boundItem = Item.Bind(_service, message.Id);
var boundItemEmail = boundItem as EmailMessage;

然后boundItemEmail.From.Address null,它会返回发件人的电子邮件地址。

问题是,与更快FindItems的操作相比,绑定消息可能是一个相当耗时的过程。

1 个答案:

答案 0 :(得分:1)

您应该能够使用LoadPropertiesForItems方法获取From属性,它比绑定到单个消息更快。