使用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
相关产品推荐
相关产品推荐

