我正在使用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
,并根据需要将项目转换为EmailMessage
或PostItem
,以访问From
属性,该属性返回EmailAddress
个对象。在该对象上,设置了Name
属性,但Address
为空。
如果我然后绑定该项目,例如:
var boundItem = Item.Bind(_service, message.Id);
var boundItemEmail = boundItem as EmailMessage;
然后boundItemEmail.From.Address
不 null,它会返回发件人的电子邮件地址。
问题是,与更快FindItems
的操作相比,绑定消息可能是一个相当耗时的过程。