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


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

我想念什么?

最佳答案

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

但是,一种更好的方法是:

var mimePart = (attachment as MimePart);

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


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

08-06 14:56