您可以运行两个单独的查询来获取收件箱文件夹中的所有新电子邮件及其内容数据。
- 首次运行:
https://graph.microsoft.com/v1.0/me/mailFolders?$filter=displayName eq 'Inbox'
仅获取有关收件箱文件夹的详细信息。
$filter=displayName eq 'Inbox' 过滤 displayName 等于 (eq) '收件箱'的文件夹
这会返回:
`{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('9285d2c9-f210-45e1-b78e-d74ba3d5e186')/mailFolders",
"value": [
{
"id": "AAMkADRlM2I0YmM5LWI2MTUtNDgzZC04N2M0LWJmMWU1MTFjMDBiYwAuAAAAAAB1tij3RiDhRab9QpP_GQhpAQCTj9cyjezTSYJYfMfg3p5fAAAAAAEMAAA=",
"displayName": "Inbox",
"parentFolderId": "AAMkADRlM2I0YmM5LWI2MTUtNDgzZC04N2M0LWJmMWU1MTFjMDBiYwAuAAAAAAB1tij3RiDhRab9QpP_GQhpAQCTj9cyjezTSYJYfMfg3p5fAAAAAAEIAAA=",
"childFolderCount": 0,
"unreadItemCount": 1,
"totalItemCount": 0
}
]
}`
- 要获取内容数据,您需要
id 值来构成第二个查询的一部分。
在末尾添加&$count=true 以获取收件箱中未读邮件的数量:
第二次查询:
https://graph.microsoft.com/v1.0/me/mailFolders/{ Inbox id goes here }/messages?$filter=isRead eq false&$count=true
这会过滤收件箱文件夹中的未读 (isRead eq false) 并返回如下内容:
`{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('9285d2c9-f210-45e1-b78e-d74ba3d5e186')/mailFolders('AAMkADRlM2I0YmM5LWI2MTUtNDgzZC04N2M0LWJmMWU1MTFjMDBiYwAuAAAAAAB1tij3RiDhRab9QpP_GQhpAQCTj9cyjezTSYJYfMfg3p5fAAAAAAEMAAA%3D')/messages",
"@odata.count": 1,
"value": [
{
"@odata.etag": "W/\"CQAAABYAAACTj9cyjezTSYJYfMfg3p5fAACWjeF5\"",
"receivedDateTime": "2018-01-29T11:32:40Z",
"sentDateTime": "2018-01-29T11:32:37Z",
"subject": "New Mail",
"bodyPreview": "New email body for email preview",
"isRead": false,
"isDraft": false,
-- More properties are returned. Shortened response for brevity --
`
通过value 访问电子邮件内容数据。
通过odata.count 访问收件箱文件夹中的未读电子邮件计数。
见Microsof Graph - List messages in a specified folder in the mailbox