我在 .NET 应用程序中使用 Microsoft Graph SDK v5.61 来检索特定用户的邮件列表,并且我想按大小降序排列邮件。这是我使用的代码:
var findItems = graphserviceclient.Users[userID].MailFolders["inbox"].Messages.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Orderby = new string[] { "size" };
}).GetAwaiter().GetResult();
但是,这会导致以下错误:
Microsoft.Graph.Models.ODataErrors.ODataError: 'Could not find a property named 'size' on type 'microsoft.graph.message'.'
似乎 size 属性不适用于 microsoft.graph.message 上的排序。我查看了文档,但无法确定是否支持此功能或是否有其他方法可以实现此功能。
我的问题:
有没有办法使用 Microsoft Graph SDK 按大小对消息进行排序?如果无法直接按大小排序,是否有针对此用例的推荐解决方法?任何帮助或指导都将不胜感激。谢谢!
要获取消息大小,您需要扩展PidTagMessageSize扩展属性。Graph API 默认不显示消息的大小。这会导致按大小排序消息的问题。扩展属性不支持排序。您必须读取所有消息并在本地对其进行排序。
这应该相当简单:
我已指定
$select
仅返回id
并subject
减少 Graph API 返回的响应的大小。