通过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();
- 我们可以在响应中获取文件夹 ID,并使用
Folder ID
与收件箱的 ID 进行比较。