如何通过Java Graph SDK或API无需遍历即可清空Outlook已删除邮件文件夹
可以实现,无需遍历「已删除邮件」文件夹内的项目
微软官方提供了专用的API接口,单次请求即可完成清空操作,不需要遍历逐个处理项目。
HTTP API 实现方式
默认「已删除邮件」文件夹有固定别名deleteditems,无需提前查询文件夹ID,直接调用empty方法即可。需提前申请Mail.ReadWrite接口权限。
请求示例:
POST https://graph.microsoft.com/v1.0/me/mailFolders/deleteditems/empty Content-Type: application/json { "permanentlyDelete": true }
- 请求体中
permanentlyDelete设置为true时,邮件会被永久删除无法通过「可恢复的项目」找回;设置为false时,内容会移动到「可恢复的项目」区域保留14天(可配置最长30天) - 请求成功返回
204 No Content状态码,无返回体 - 如果你需要操作其他用户的邮箱(应用权限场景),将路径中的
/me替换为/users/{用户ID或用户邮箱地址}即可
Java Graph SDK 实现方式
版本≥5.x的官方Java Graph SDK已经内置了该接口的封装,代码示例如下:
// 已完成GraphClient初始化、权限认证逻辑后执行 graphClient.me() .mailFolders() .byMailFolderId("deleteditems") .empty() .post(EmptyPostRequestBody.builder() .permanentlyDelete(true) .build());
如果使用4.x及更早版本的SDK没有内置该方法,可以自行构造POST请求调用上述HTTP端点,效果一致。
内容的提问来源于stack exchange,提问作者Nick Kyrpenko
相关产品推荐
相关产品推荐

