阅读带有附件的电子邮件并使用 C# 中的 Microsoft Graph API 转换为 .eml 文件

问题描述 投票:0回答:1

需要示例代码来阅读带有附件的电子邮件并使用 C# 中的 Microsoft Graph API 转换为

.eml
文件

Microsoft Graph API - 5.49.0 版本 目标框架 - Net 5.0

请确认我是否使用压缩版本。

var messages = _graphServiceClient.Users[""].MailFolders["inbox"].Messages.GetAsync().Result;

foreach (var message in messages.Value)
{
// From the "message" object, Able to retrieve BodyPreview, Subject, From Address and Has Attachments.
}

如果 HasAttachmentstrue 并且 emailinbox 中包含 attachment,但

message.Attachments
null

需要知道如何从

message
对象检索附件。

还需要将该电子邮件转换为 .eml 格式并将电子邮件移动到与

Inbox
不同的文件夹。

c# microsoft-graph-api .net-5
1个回答
0
投票

您可以过滤带附件的邮件

var result = await graphClient.Users[""].MailFolders["inbox"].Messages.GetAsync((rc) =>
{
    rc.QueryParameters.Filter = "hasAttachments eq true";
});

对于每条消息,读取其 MIMEContent 并将流保存为 .eml 文件。

foreach (var message in result.Value)
{
    var content = await graphClient.Users[""].MailFolders["inbox"].Messages[message.Id].Content.GetAsync();
}

https://learn.microsoft.com/en-us/graph/api/message-get?view=graph-rest-1.0&tabs=csharp#example-4-get-mime-content

© www.soinside.com 2019 - 2024. All rights reserved.