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

How to save entire MailKit mime message as a byte array

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

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

正如 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 作为字节[] 读取,然后执行以下操作:

using (var memory = new MemoryStream (blob, false)) {
    message = MimeMessage.Load (memory);
}