【问题标题】:How to save attachments?如何保存附件?
【发布时间】:2015-07-15 07:45:23
【问题描述】:

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

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

我错过了什么?

【问题讨论】:

标签: c# mimekit


【解决方案1】:

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

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

var mimePart = (attachment as MimePart);

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

换句话说,没有必要使用临时内存流。

【讨论】:

  • 这是您今天帮助我解决的第三个也是最后一个问题。它也运行良好。 Jeffrey,我非常感谢您的帮助(和 MailKit/MimeKit)。我现在一切正常 :) 祝你有美好的一天!
猜你喜欢
  • 2021-07-18
  • 2019-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多