我正在使用 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);
}
Run Code Online (Sandbox Code Playgroud)
我一直在尝试带有不同类型附件的代码。我光盘上创建的文件总是空的。
我错过了什么?
上面代码的问题是您忘记将memoryStream.Position返回重置为0:-)
但是,做您想做的事情的更好方法是:
var mimePart = (attachment as MimePart);
using (var fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
mimePart.ContentObject.DecodeTo(fileStream);
}
Run Code Online (Sandbox Code Playgroud)
换句话说,不需要使用临时内存流。