You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Mailkit/MimeKit IMAP将所有邮件保存为单个.mbox文件

你的代码无法正常生成可用的.mbox文件,核心原因是直接拼接多封邮件的原始内容不符合mbox格式规范。mbox格式要求每封邮件之间必须有特定的分隔标识,且需要对内容中可能混淆成分隔标识的字符做转义,直接拼接的文件无法被mbox解析工具识别。

推荐直接使用MimeKit内置的MboxWriter类实现导出,该类已经封装了所有mbox格式规范的处理逻辑,修正后的代码如下:

using (var fileStream = File.Create(@"C:\temp\results.mbox"))
using (var mboxWriter = new MimeKit.IO.MboxWriter(fileStream, MimeKit.IO.MboxFormat.Mboxo))
{
    foreach (var uid in uids)
    {
        var message = client.Inbox.GetMessage(uid);
        mboxWriter.WriteMessage(message);
    }
}

上述代码会自动处理分隔行生成、内容转义、格式对齐等所有规范要求,不需要你手动处理流拼接的细节。

如果你需要手动实现写入逻辑而不使用封装好的工具类,需要额外完成以下处理:

  • 每封邮件写入前,先写入From 开头的分隔行,行内需包含发件人地址和符合asctime格式的邮件接收时间,末尾追加换行符
  • 写入邮件内容时,所有以From 开头的行需要前置>做转义,避免被识别为新邮件的分隔标识
  • 每封邮件写入完成后追加至少1个空行,和下一封邮件做区隔

内容的提问来源于stack exchange,提问作者AdamH409

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 08:45:00