Конвертиране на MBOX към PST
Конвертиране на MBOX към PST. Основна конверсия
При миграция на пощенски данни от клиенти като Mozilla Thunderbird към Microsoft Outlook, често се изисква конвертиране на MBOX архиви в PST (Personal Storage Table) формат. Форматът PST е роден за Outlook и Exchange и поддържа разширени функции като структури от папки и MAPI‑база обработка на съобщения.
Aspose.Email for .NET позволява на разработчиците ръчно да прехвърлят съобщения от MBOX файлове в съвместимо с Outlook хранилище с пълен контрол върху процеса на конверсия. По-долу е пример, който демонстрира как да заредите съобщения от MBOX архив и да ги запазите в структуриран Outlook файл с данни:
- Инициализирайте MBOX четеца, използвайки MboxStorageReader.CreateReader().
- Генерирайте PST файл, използвайки PersonalStorage.Create().
- Добавете пощенска папка (например „Inbox“) към хранилището.
- Обхождайте всяко съобщение, конвертирайте го към 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 });