当我尝试使用GraphServiceClient从共享邮箱下载电子邮件时,我一直收到类型为“Microsoft.Graph.Models.ODataErrors.ODataError”的异常。不支持OData请求。我在谷歌上搜索了这个问题,没有得到一个可用的解决方案。
最初以应用权限Mail.ReadWrite启动。从那里添加了Mail.Read,Mail.ReadBasic,Mail.ReadBasic.All,看看是否有什么可以工作。下面是我正在使用的代码示例。
ClientSecretCredential? _clientSecretCredential = new ClientSecretCredential(_settings.TenantId, _settings.ClientId, _settings.ClientSecret);
var graphServiceClient = new GraphServiceClient(_clientSecretCredential,new[] { "https://graph.microsoft.com/.default" });
var messages = await graphServiceClient.Users["email@account.com"].MailFolders["inbox"].Messages.GetAsync();
//messages returns 3 emails
foreach (var message in messages.Value)
{
//this throws the error---------------------------------------
var messageStream = await graphServiceClient
.Users["email@account.com"]
.MailFolders["inbox"]
.Messages[message.Id]
.Content
.GetAsync();
//---------------------------------------------------------------
string path = "File_Path.eml";
using (FileStream fs = new FileStream(path, FileMode.CreateNew))
{
messageStream.CopyTo(fs);
}
}
字符串
如果有任何关于Azure配置的问题,你能想到的,那将不胜感激。
更新:根据下面的答案,从消息请求中删除.MailFolders[“inbox”]并添加TokenCredentialOptions解决了问题。
1条答案
按热度按时间rt4zxlrg1#
x1c 0d1x的数据
字符串
的
参考文献: