当通过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
。
根据我的测试,它将获取登录用户邮箱中的所有邮件。根据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();
Folder ID
与收件箱的ID进行比较。