如何保存附件?
How to save attachments?
我正在使用 MailKit/MimeKit 1.2.7(最新的 NuGet 版本)。
我一直在阅读 API 文档和一些关于 Whosebug 的帖子。但我仍然无法成功将电子邮件附件另存为文件。
这是我当前的代码:
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);
}
换句话说,不需要使用临时内存流。
我正在使用 MailKit/MimeKit 1.2.7(最新的 NuGet 版本)。
我一直在阅读 API 文档和一些关于 Whosebug 的帖子。但我仍然无法成功将电子邮件附件另存为文件。
这是我当前的代码:
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);
}
换句话说,不需要使用临时内存流。