EWS FindItems OrderBy - 按 EmailMessageSchema.From 排序顺序不正确

5

我正在使用带有视图 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);

奇怪的“From”顺序:

  1. MXX QA团队
  2. Shahzad Iqbal
  3. Kim Stevens
  4. Vikram Keswani
  5. Ulrich Patzer
  6. Shahzad Iqbal
  7. Shahzad Iqbal

如果我按照降序排序,条目的顺序就会反转。邮件#6和#7具有与#2不同的SMPT地址。当查看SMTP地址时,模式并不清晰。结果似乎是通过Address.MailboxType分组的。这是我能看到的唯一的轻微模式。

如何使FindItems()结果根据EmailMessageSchema.From正确排序?

1个回答

7

发件人和发送者属性是复杂属性(例如包含多个属性)。如果您想按照某种方式对结果进行排序,最好使用扩展属性。例如,如果您想根据发送者名称对结果进行排序,请使用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);

你好,Glen


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接