You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java的Graph Client获取邮件附件数量(无需下载附件)

解答
  • 可以通过attachments/$count的方式在获取邮件基本信息时同步获取附件数量,无需下载附件内容,你的思路可行,但语法上需要调整为attachments/$count(使用斜杠而非点),同时需添加请求头确保计数信息被返回。

正确代码示例

graphClientService.messages(messageId)
    .buildRequest()
    .header("Prefer", "odata.include-annotations=\"*\"")
    .select("subject,receivedDatetime,isRead,attachments/$count")
    .get();

获取附件数量的方式

请求返回Message对象后,可通过getAdditionalData()方法提取attachments@odata.count的值:

Message message = // 上述请求返回的对象
Integer attachmentCount = (Integer) message.getAdditionalData().get("attachments@odata.count");

补充说明

  • attachments/$count是Microsoft Graph支持的投影计数语法,仅统计关联附件的数量,不会拉取附件具体内容,能有效降低请求开销。
  • 添加Prefer请求头是为了让Graph API返回@odata.count注解信息,否则返回的Message对象中不会包含该计数字段。

内容的提问来源于stack exchange,提问作者Afsar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 15:33:14