Konwersja MBOX do PST

Konwersja MBOX do PST. Podstawowa konwersja

Podczas migracji danych pocztowych z klientów takich jak Mozilla Thunderbird do Microsoft Outlook, konwersja archiwów MBOX do formatu PST (Personal Storage Table) jest często wymagana. Format PST jest natywny dla Outlook i Exchange oraz wspiera zaawansowane funkcje, takie jak struktury folderów i obsługa komunikatów oparta na MAPI.

Aspose.Email dla .NET umożliwia programistom ręczne przenoszenie wiadomości z plików MBOX do magazynu zgodnego z Outlook, zapewniając pełną kontrolę nad procesem konwersji. Poniżej znajduje się przykład pokazujący, jak wczytać wiadomości z archiwum MBOX i zapisać je w ustrukturyzowanym pliku danych Outlook:

  1. Zainicjuj czytnik MBOX używając MboxStorageReader.CreateReader().
  2. Wygeneruj plik PST przy użyciu PersonalStorage.Create().
  3. Dodaj folder poczty (np. „Inbox”) do przechowywania.
  4. Iteruj po każdej wiadomości, konwertuj ją na MapiMessage, i wstaw go do folderu.
// 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);
    }
}

Usuwanie podpisów cyfrowych podczas konwersji

W niektórych przypadkach cyfrowe podpisy osadzone w wiadomościach nie są potrzebne w pliku docelowym. Aby je wykluczyć podczas transferu, ustaw RemoveSignature właściwość w MboxToPstConversionOptions na true.

Poniższy przykład kodu pokazuje, jak wykorzystać tę właściwość:

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