Microsoft Graph API returns 邮件正文为 HTML
Microsoft Graph API returns mail message body as HTML
我想阅读我的电子邮件并将它们转换成 json。我正在使用 Microsoft Graph API 像这样查询 office 365 邮箱
GraphServiceClient client = new GraphServiceClient(
new DelegateAuthenticationProvider (
(requestMessage) =>
{
requestMessage.Headers.Authorization =
new AuthenticationHeaderValue("Bearer", token);
return Task.FromResult(0);
}
)
);
var mailResults = await client.Me.MailFolders.Inbox.Messages.Request()
.OrderBy("receivedDateTime DESC")
.Select(m => new { m.Subject, m.ReceivedDateTime, m.From, m.Body})
.Top(100)
.GetAsync();
我按照 this 教程进入了这个阶段。但是我的邮件正文被 return 编辑为 html 而不是文本。有没有一种方法可以指定 message.body 到 return 文本甚至 json 而不是 HTML?
不用设置HTTP请求头吗:
Prefer: outlook.body-content-type="text"
requestMessage.Headers.Add("Prefer", "outlook.body-content-type='text'");
编辑:
查看文档,这是客户端class代码:https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dev/src/Microsoft.Graph/Requests/Generated/GraphServiceClient.cs
这是您正在关注的 link 中的示例:
private static GraphServiceClient GetClient(string accessToken, IHttpProvider provider = null)
{
var delegateAuthProvider = new DelegateAuthenticationProvider((requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
return Task.FromResult(0);
});
var graphClient = new GraphServiceClient(delegateAuthProvider, provider ?? HttpProvider);
return graphClient;
}
使用 GraphServiceClient,调用 .Header("Prefer", "outlook.body-content-type='text'")
作为请求方法链的一部分:
var mailResults = await client.Me.MailFolders.Inbox.Messages
.Request()
.Header("Prefer", "outlook.body-content-type='text'")
.OrderBy("receivedDateTime DESC")
.Select(m => new { m.Subject, m.ReceivedDateTime, m.From, m.Body})
.Top(100)
.GetAsync();
我想阅读我的电子邮件并将它们转换成 json。我正在使用 Microsoft Graph API 像这样查询 office 365 邮箱
GraphServiceClient client = new GraphServiceClient(
new DelegateAuthenticationProvider (
(requestMessage) =>
{
requestMessage.Headers.Authorization =
new AuthenticationHeaderValue("Bearer", token);
return Task.FromResult(0);
}
)
);
var mailResults = await client.Me.MailFolders.Inbox.Messages.Request()
.OrderBy("receivedDateTime DESC")
.Select(m => new { m.Subject, m.ReceivedDateTime, m.From, m.Body})
.Top(100)
.GetAsync();
我按照 this 教程进入了这个阶段。但是我的邮件正文被 return 编辑为 html 而不是文本。有没有一种方法可以指定 message.body 到 return 文本甚至 json 而不是 HTML?
不用设置HTTP请求头吗:
Prefer: outlook.body-content-type="text"
requestMessage.Headers.Add("Prefer", "outlook.body-content-type='text'");
编辑:
查看文档,这是客户端class代码:https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dev/src/Microsoft.Graph/Requests/Generated/GraphServiceClient.cs
这是您正在关注的 link 中的示例:
private static GraphServiceClient GetClient(string accessToken, IHttpProvider provider = null)
{
var delegateAuthProvider = new DelegateAuthenticationProvider((requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
return Task.FromResult(0);
});
var graphClient = new GraphServiceClient(delegateAuthProvider, provider ?? HttpProvider);
return graphClient;
}
使用 GraphServiceClient,调用 .Header("Prefer", "outlook.body-content-type='text'")
作为请求方法链的一部分:
var mailResults = await client.Me.MailFolders.Inbox.Messages
.Request()
.Header("Prefer", "outlook.body-content-type='text'")
.OrderBy("receivedDateTime DESC")
.Select(m => new { m.Subject, m.ReceivedDateTime, m.From, m.Body})
.Top(100)
.GetAsync();