如何保存附件
本文关键字:保存 何保存 | 更新日期: 2023-09-27 18:02:41
我使用的是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);
}
换句话说,没有必要使用临时内存流。