Office 365 Graph API未返回收件箱文件夹邮件,但正在获取已发送邮件和已删除邮件

问题描述 投票:0回答:1

当通过C#nuget客户端查询“我/消息”时,我无法返回收件箱消息,但我可以从其他文件夹中获取消息。

client.Me.Messages.Request().Filter("createdDateTime gt 2017-08-01T15:50:36.00Z").OrderBy("createdDateTime").Expand("attachments").GetAsync()

由于某种原因,它仅返回来自“已发送邮件”,“已删除邮件”和“对话”文件夹的邮件。但我从收件箱文件夹中得不到任何东西。

奇怪的是,我可以查询文件夹列表并展开每个文件夹的消息,并且收件箱中会显示消息。

IUserMailFoldersCollectionPage foldersPage = await client.Me.MailFolders.Request().Expand("messages").GetAsync();

那么为什么消息会出现在收件箱的文件夹对象上,而不是当我查询“我/消息”时?

c# office365 office365api
1个回答
1
投票

根据您的描述,我想您希望使用API​​获取收件箱文件夹中的邮件:

GET /users/{Garth-id | Garth-userPrincipalName}/messages

根据我的测试,它将获取登录用户邮箱中的所有邮件。根据this document,此请求的默认页面大小为10条消息。

我们可以从响应中获取parentFolderId,然后我们可以使用parentFolderId来请求此API:GET /users/{Garth-id | Garth-userPrincipalName}/mailFolders/{id}获取文件夹名称。

有两个步骤可以检查收件箱文件夹中的邮件是否会返回。

1.我们可以增加页面大小以获取更多消息,请按照下面的代码:

var collectionMessagePage = await _serviceClient.Me.Messages.Request().Top(20).GetAsync();
  1. 我们可以在响应中获取文件夹ID,并使用Folder ID与收件箱的ID进行比较。
© www.soinside.com 2019 - 2024. All rights reserved.