3

我正在使用 MailKit/MimeKit 1.2.7(最新的 NuGet 版本)。

我一直在阅读 API 文档和有关 stackoverflow 的几篇文章。但我仍然无法成功将电子邮件附件保存为文件。

这是我当前的代码:

var mimePart = (attachment as MimePart);
var memoryStream = new MemoryStream();
mimePart.ContentObject.DecodeTo(attachmentStream);

using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
      memoryStream.CopyTo(fileStream);
}

我一直在用不同类型的附件尝试这段代码。我的光盘上创建的文件总是空的。

我错过了什么?

4

1 回答 1

5

上面代码的问题是您忘记将memoryStream.Position背面重置为0:-)

但是,做你想做的更好的方法是:

var mimePart = (attachment as MimePart);

using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
    mimePart.ContentObject.DecodeTo(fileStream);
}

换句话说,不需要使用临时内存流。

于 2015-07-15T14:50:36.917 回答