Chuyển đổi MBOX sang PST

Chuyển đổi MBOX sang PST. Chuyển đổi cơ bản

Khi di chuyển dữ liệu mail từ các khách hàng như Mozilla Thunderbird sang Microsoft Outlook, việc chuyển đổi các kho lưu trữ MBOX sang định dạng PST (Personal Storage Table) thường được yêu cầu. Định dạng PST là định dạng gốc của Outlook và Exchange và hỗ trợ các tính năng nâng cao như cấu trúc thư mục và xử lý tin nhắn dựa trên MAPI.

Aspose.Email cho .NET cho phép nhà phát triển chuyển thủ công các tin nhắn từ tệp MBOX vào bộ lưu trữ tương thích Outlook với quyền kiểm soát đầy đủ quá trình chuyển đổi. Dưới đây là một ví dụ minh họa cách tải tin nhắn từ kho lưu trữ MBOX và lưu chúng vào một tệp dữ liệu Outlook có cấu trúc:

  1. Khởi tạo trình đọc MBOX bằng cách sử dụng MboxStorageReader.CreateReader().
  2. Tạo tệp PST bằng cách sử dụng PersonalStorage.Create().
  3. Thêm một thư mục mail (ví dụ, “Inbox”) vào bộ lưu trữ.
  4. Lặp qua từng tin nhắn, chuyển đổi nó thành một MapiMessage, và chèn nó vào thư mục.
// 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);
    }
}

Xóa chữ ký số trong quá trình chuyển đổi

Trong một số trường hợp, chữ ký số nhúng trong tin nhắn không cần thiết trong tệp đích. Để loại bỏ chúng trong quá trình chuyển, đặt RemoveSignature thuộc tính trong MboxToPstConversionOptions đến true.

Mẫu mã sau đây cho thấy cách sử dụng thuộc tính này:

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