将 MBOX 转换为 PST

将 MBOX 转换为 PST。基础转换

在将邮件数据从 Mozilla Thunderbird 等客户端迁移到 Microsoft Outlook 时,通常需要将 MBOX 归档转换为 PST(个人存储表)格式。PST 格式是 Outlook 和 Exchange 的原生格式,支持文件夹结构和基于 MAPI 的消息处理等高级功能。

Aspose.Email for .NET 允许开发者手动将 MBOX 文件中的邮件转移到 Outlook 兼容的存储中,并完全控制转换过程。以下示例演示了如何从 MBOX 归档加载邮件并将其保存到结构化的 Outlook 数据文件中:

  1. 使用以下方式初始化 MBOX 读取器 MboxStorageReader.CreateReader().
  2. 使用以下方式生成 PST 文件 PersonalStorage.Create().
  3. 向存储中添加邮件文件夹(例如 “Inbox”)。
  4. 遍历每封邮件,将其转换为一个 MapiMessage,并将其插入到文件夹中。
// Load the source file
var mbox = MboxStorageReader.CreateReader(mboxFilePath, new MboxLoadOptions());

// Create the destination Outlook data file
using (var personalStorage = PersonalStorage.Create(pstFilePath, FileFormatVersion.Unicode))
{
    // Add a folder to hold imported messages
    var folderInfo = personalStorage.CreatePredefinedFolder("Inbox", StandardIpmFolder.Inbox);

    // Process each message from the source file
    foreach (var eml in mbox.EnumerateMessages())
    {
        var msg = MapiMessage.FromMailMessage(eml);
        folderInfo.AddMessage(msg);
    }
}

在转换过程中移除数字签名

在某些情况下,消息中嵌入的数字签名在目标文件中并非必需。要在传输过程中排除它们,请设置 RemoveSignature 属性在 MboxToPstConversionOptions 设为 true

以下代码示例演示如何使用此属性:

var pstDataStream = new MemoryStream();
var personalStorage = PersonalStorage.Create(pstDataStream, FileFormatVersion.Unicode);
MailStorageConverter.MboxToPst(new MboxrdStorageReader(new FileStream(fileName, FileMode.Open, FileAccess.Read), new MboxLoadOptions()),
personalStorage,
    "Inbox",
new MboxToPstConversionOptions() { RemoveSignature = true });