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

使用Microsoft Graph SDK下载邮件附件原始内容的方法问询

如何通过Microsoft Graph SDK 5.x下载邮件附件内容字节

在Microsoft Graph SDK 5.13.0版本中,确实没有直接提供类似Attachments[attachmentId].Content.GetAsync()的方法,但可以通过手动构造请求的方式,实现官方文档中追加/$value的REST API逻辑,获取附件的原始内容字节。

实现代码示例

using System.IO;

// 构造请求并获取附件流
var attachmentStream = await graphClient.Users[userId].Messages[messageId].Attachments[attachmentId]
    .Request()
    .AppendSegmentToRequestUrl("/$value")
    .GetAsync<Stream>();

// 将流转换为字节数组
using var memoryStream = new MemoryStream();
await attachmentStream.CopyToAsync(memoryStream);
byte[] attachmentBytes = memoryStream.ToArray();

补充说明

  • 这种方式本质上是手动在SDK生成的请求URL后追加/$value片段,和官方REST API的调用逻辑完全一致。
  • 如果你的附件是FileAttachment类型,调用GetAsync()获取的附件对象中会包含ContentBytes属性,但该属性仅适用于较小的附件(通常几MB以内),当附件超过Graph API的返回限制时,该属性会为空,此时必须使用/$value端点的方式下载,这种方式也更适合处理大附件场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 02:04:56