如何将整个 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);
}
我正在构建一个简单的 .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);
}