EWS FindItems OrderBy - 按 EmailMessageSchema 排序。来自不正确的顺序

2024-01-08

我正在视图上使用 OrderBy 调用 EWS FindItems() 方法。如果我使用各种 ItemSchema.* 值(例如 ItemSchema.DisplayTo、ItemSchema.Importance、ItemSchema.Subject),结果将以正确的顺序返回。

但是,如果我希望结果按 EmailMessageSchema.From 排序,因为结果的顺序很奇怪,我无法理解并且我的用户也无法接受。

正确排序:ItemSchema.Subject

ItemView view = new ItemView(20, 0, OffsetBasePoint.Beginning);
view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
view.OrderBy.Add(ItemSchema.Subject, SortDirection.Ascending);  
var findResults = service.FindItems(new FolderId(emails.CompositeUniqueFolderId), view);

排序不正确:EmailMessageSchema.From

ItemView view = new ItemView(20, 0, OffsetBasePoint.Beginning);
view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
view.OrderBy.Add(EmailMessageSchema.From, SortDirection.Ascending);  
var findResults = service.FindItems(new FolderId(emails.CompositeUniqueFolderId), view);

奇怪的“来自”订单:

  1. MXX 质量保证团队
  2. 沙赫扎德·伊克巴尔
  3. 金·史蒂文斯
  4. 维克拉姆·凯斯瓦尼
  5. 乌尔里希·帕泽
  6. 沙赫扎德·伊克巴尔
  7. 沙赫扎德·伊克巴尔

如果我按降序排序,则条目按相反顺序排列。电子邮件 #6 和 #7 具有与 #2 不同的 SMPT 地址。查看 SMTP 地址时,模式并不清晰。结果似乎确实按 Address.MailboxType 分组。这是我能看到的唯一轻微的模式。

如何让 FindItems() 结果按 EmailMessageSchema.From 正确排序?


From 和Sender 属性是复杂属性(例如包含多个属性)。您最好只使用扩展属性来排序结果,例如,如果您想根据发件人名称排序结果,请使用 pidtagSenderName 属性,例如

        ExtendedPropertyDefinition Pr_Sender_Name = new ExtendedPropertyDefinition(0x0C1A, MapiPropertyType.String);
        ItemView view = new ItemView(20, 0, OffsetBasePoint.Beginning);
        view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
        view.PropertySet.Add(Pr_Sender_Name);
        view.OrderBy.Add(Pr_Sender_Name, SortDirection.Ascending);

干杯 格伦

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EWS FindItems OrderBy - 按 EmailMessageSchema 排序。来自不正确的顺序 的相关文章

随机推荐