EWS FindItems OrderBy - 按EmailMessageSchema.From排序错误

Kim*_*ens 5 sorting exchangewebservices

我在View上使用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);
Run Code Online (Sandbox Code Playgroud)

排序不正确: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);
Run Code Online (Sandbox Code Playgroud)

奇怪的'从'订购:

  1. MXX QA团队
  2. Shahzad Iqbal
  3. 金史蒂文斯
  4. Vikram Keswani
  5. 乌尔里希帕特泽
  6. Shahzad Iqbal
  7. Shahzad Iqbal

如果我按顺序按顺序降序输入.电子邮件#6和#7具有与#2不同的SMPT地址.查看SMTP地址时,模式不明确.结果似乎按Address.MailboxType分组.这是我能看到的唯一轻微模式.

如何通过EmailMessageSchema.From正确排序FindItems()结果?

Gle*_*les 7

From和Sender属性是复杂属性(例如,包含多个属性).您最好只使用Extended属性来定制结果,例如,如果您想根据发件人名称订购结果,请使用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);
Run Code Online (Sandbox Code Playgroud)

干杯格伦