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

EWS FindItems OrderBy - Sort by EmailMessageSchema.From Incorrect Order

我在我的视图上使用 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 质量检查小组
  2. 沙赫扎德·伊克巴尔
  3. 金史蒂文斯
  4. 维克拉姆·凯斯瓦尼
  5. 乌尔里希·帕泽
  6. 沙赫扎德·伊克巴尔
  7. 沙赫扎德·伊克巴尔

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

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

From 和 Sender 属性是复杂的属性(例如包含多个 属性)。您最好只使用 Extended 属性 作为您想要的结果 Order the result on 例如,如果您想根据发件人姓名对结果进行排序,请使用 pidtagSenderName 属性 eg

        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);

干杯 格伦