我正在构建一个简单的.net MailKit IMAP客户端。而不是一次又一次地从IMAP服务器中提取电子邮件,是否可以将整个MailKit mime消息(完整地,包括附件)存储为字节数组?如果是这样,怎么样?
然后我可以将它写入MySql或文件并重复使用它来测试代码更改。
答案 0 :(得分:6)
正如Lucas所指出的,您可以使用MimeMessage.WriteTo()方法将消息写入文件名或流(例如MemoryStream
)。
如果您希望将消息作为字节数组保存到SQL数据库,则可以执行以下操作:
using (var memory = new MemoryStream ()) {
message.WriteTo (memory);
var blob = memory.ToArray ();
// now save the blob to the database
}
要从数据库中读取它,首先要将blob作为byte []读取,然后执行以下操作:
using (var memory = new MemoryStream (blob, false)) {
message = MimeMessage.Load (memory);
}