Office 365 图形 API 不返回收件箱文件夹邮件,但收到已发送邮件和已删除邮件



通过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();

那么,为什么邮件出现在收件箱的文件夹对象上,而不是在我查询"我/邮件"时

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

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

根据我的测试,它将获取登录用户邮箱中的所有邮件。根据此文档,此请求的默认页面大小为 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 进行比较。

最新更新