如何保存附件?

时间:2015-07-15 07:45:23

标签: c# mimekit

我正在使用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);
}

我一直在尝试使用不同类型的附件代码。我光盘上创建的文件始终为空。

我错过了什么?

1 个答案:

答案 0 :(得分:4)

上述代码的问题在于您忘记将memoryStream.Position重置为0: - )

然而,做你想做的更好的方法是:

var mimePart = (attachment as MimePart);

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

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