我正在尝试从一些电子邮件中接收一些 .eml 附件。
基于来自 https://docs.microsoft.com/en-us/graph/outlook-get-mime-message 的文档我需要使用:GET/users/{id}/messages/{id}/attachments/{id}/$value
这里的问题是我不知道如何使用 C# 中的 Microsoft.Graph 库来做到这一点。
我不知道将“$value”附加到调用中。下面我附上了我目前用于获取特定电子邮件附件的 C# 结构。任何建议都可以提供帮助。谢谢。
return await _graphServiceClient.Me.Messages[emailId].Attachments.Request().GetAsync()
最佳答案
SDK 目前不直接支持这一点。通常获取 /$value
附加到生成的请求 URL 的段,您访问 Content
请求构建器上的属性。问题是泛型 IAttachmentRequestBuilder
不实现这个属性,只有 FileAttachmentRequestBuilder
做。
所以要让它与当前的 SDK 一起工作,你需要这样做:
var msgId = "message-id";
var attId = "attachment-id";
var attachmentRequestBuilder = client.Me.Messages[msgId].Attachments[attId];
var fileRequestBuilder = new FileAttachmentRequestBuilder(
attachmentRequestBuilder.RequestUrl, client);
Console.WriteLine($"Request URL: {fileRequestBuilder.Content.Request().RequestUrl}");
var stream = await fileRequestBuilder.Content.Request().GetAsync();
using(var reader = new StreamReader(stream))
{
Console.WriteLine("Attachment contents:");
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
Console.WriteLine(line);
}
}
我已经让 SDK 人员知道了这一点。
关于c# - 如何在 C# 中使用 Microsoft Graph 库使用 $value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60992118/