【问题标题】:EWS Managed - Is it possible to get full "From" details using "FindItems"?EWS 托管 - 是否可以使用“FindItems”获取完整的“发件人”详细信息?
【发布时间】:2014-09-16 12:09:06
【问题描述】:

我正在使用 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为空,它返回发件人的电子邮件地址。

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

【问题讨论】:

    标签: exchangewebservices ews-managed-api


    【解决方案1】:

    您应该可以使用LoadPropertiesForItems 方法来获取From 属性,它比绑定到单个消息要快。

    【讨论】:

    • 起初我认为这不会有什么帮助,因为LoadPropertiesForItems 需要一个PropertySet 参数,就像我传递给FindItems 一样。但奇怪的是,它确实加载了完整的From 属性集,尽管FindItems 只加载了一个子集。 - _service.LoadPropertiesForItems(searchResults, new PropertySet(EmailMessageSchema.From));
    猜你喜欢
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-09
    相关资源
    最近更新 更多