如何将整个MailKit mime消息保存为字节数组

时间:2017-11-28 19:47:28

标签: c# .net mailkit

我正在构建一个简单的.net MailKit IMAP客户端。而不是一次又一次地从IMAP服务器中提取电子邮件,是否可以将整个MailKit mime消息(完整地,包括附件)存储为字节数组?如果是这样,怎么样?

然后我可以将它写入MySql或文件并重复使用它来测试代码更改。

1 个答案:

答案 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);
}