mailFolder: delta

命名空间:microsoft.graph

获取用户邮箱中已添加、删除或移除的邮件文件夹集。

邮箱中邮件文件夹的 delta 函数调用类似于 GET 请求,不同之处在于,通过在一个或多个调用中适当应用 状态令牌 ,可以查询邮件文件夹中的增量更改。 这使你可以维护和同步用户邮件文件夹的本地存储,而无需每次从服务器提取该邮箱的所有邮件文件夹。

此 API 可用于以下国家级云部署

全局服务 美国政府 L4 美国政府 L5 (DOD) 由世纪互联运营的中国

权限

为此 API 选择标记为最低特权的权限。 只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考

权限类型 最低特权权限 更高特权权限
委派(工作或学校帐户) Mail.ReadBasic Mail.Read、Mail.ReadWrite
委派(个人 Microsoft 帐户) Mail.ReadBasic Mail.Read、Mail.ReadWrite
应用程序 Mail.ReadBasic.All Mail.Read、Mail.ReadWrite

HTTP 请求

GET /me/mailFolders/delta
GET /users/{id}/mailFolders/delta

查询参数

跟踪邮件文件夹中的更改会产生一轮或多次 delta 函数调用。 如果要使用任意查询参数($deltatoken$skiptoken 除外),则必须在最初的 delta 请求中指定它。 Microsoft Graph 自动将指定的任意参数编码为响应中提供的 @odata.nextLink@odata.deltaLink URL 的令牌部分。 只需预先指定所需的任何查询参数一次。 在后续请求中,只需复制并应用 @odata.nextLink 上一响应中的 或 @odata.deltaLink URL,因为该 URL 已包含编码的所需参数。

查询参数 类型 说明
$deltatoken string 在上一个 delta 函数的 URL 中@odata.deltaLink返回的状态令牌调用同一邮件文件夹集合,指示完成这一轮更改跟踪。 将此令牌包含在对该集合的下一组更改追踪的首次请求中,并保存和应用整个 @odata.deltaLink URL。
$skiptoken string 对之前的 delta 函数调用的 @odata.nextLink URL 中返回的状态令牌,指示同一个邮件文件夹集合中有进一步的更改需要追踪。

OData 查询参数

像在任何 GET 请求中一样,你可以使用 $select 查询参数以仅指定获取最佳性能所需的属性。 始终返回 id 属性。

请求标头

名称 类型 说明
Authorization string 持有者 {token}。 必填。 详细了解 身份验证和授权
Content-Type string application/json. 必需。
Prefer string odata.maxpagesize={x}。 可选。

响应

如果成功,此方法在响应正文中返回 200 OK 响应代码和 MailFolder 集合对象。

示例

请求

以下示例演示了如何执行单次 delta 函数调用,并将响应正文中的邮件文件夹最大数目限制为 2。

若要跟踪邮箱的邮件文件夹的更改,要使用正确的状态令牌执行一次或多次 delta 函数调用来获取上一次增量查询后的增量更改集。

可以找到一个类似的示例,该示例演示如何使用状态令牌跟踪邮件文件夹中的邮件中的更改: 获取对文件夹中邮件的增量更改。 跟踪邮件文件夹和跟踪文件夹中的邮件之间的主要区别在于增量查询请求 URL,以及返回 mailFolder 而不是 邮件集合的 查询响应。

GET https://graph.microsoft.com/v1.0/me/mailFolders/delta

Prefer: odata.maxpagesize=2
响应

如果请求成功,响应将包括状态令牌,该令牌是@odata.nextLink 响应标头) 中的 skipToken (,或者是 @odata.deltaLink 响应标头) 中的 deltaToken (。 它们分别指示是应继续执行回合,还是已完成获取该回合的所有更改。

以下响应显示了 @odata.nextLink 响应头中的 skipToken

注意:为了提高可读性,可能缩短了此处显示的响应对象。

HTTP/1.1 200 OK
Content-type: application/json

{
  "@odata.nextLink":"https://graph.microsoft.com/v1.0/me/mailFolders/delta?$skiptoken={_skipToken_}",
  "value": [
    {
      "displayName": "displayName-value",
      "parentFolderId": "parentFolderId-value",
      "childFolderCount": 99,
      "unreadItemCount": 99,
      "totalItemCount": 99
    }
  ]
}