【发布时间】:2022-01-11 13:54:57
【问题描述】:
我们正在使用 .NET Core 3.1、MimeKit 2.11.0 和 Google.Apis.Gmail.v1 1.51.0.2251 获取 Gmail 邮件。我们希望以流的形式从 REST API 检索消息,然后将流传递给 MimeMessage.Load 方法。
我们定义了以下获取电子邮件的函数:
private Stream GetMessageDetails(string messageId, FormatEnum format)
{
var req = gmailService.Users.Messages.Get("test@gmail.com", messageId);
req.Format = format;
return req.ExecuteAsStream();
}
然后我们这样称呼它:
using (var messageStream = GetMessageDetails("MESSAGE_ID", FormatEnum.Raw))
{
MimeMessage mimeMsg = MimeMessage.Load(messageStream);
}
当我们运行上面的代码时,我们得到一个异常:
Failed to parse message headers.
我们尝试了FormatEnum.Raw 和FormatEnum.Full,但遇到了同样的异常。我们如何使用MimeKit 加载消息而不先将整个消息加载到内存中?我们知道 base 64 解码消息的Raw 内容的方法,但它需要将整个消息加载到内存中,这不是我们想要的。
【问题讨论】:
标签: c# gmail-api google-api-dotnet-client mimekit