تبدیل MBOX به PST
تبدیل MBOX به PST. تبدیل پایه
هنگام انتقال دادههای ایمیل از مشتریان مانند Mozilla Thunderbird به Microsoft Outlook، تبدیل آرشیوهای MBOX به فرمت PST (Personal Storage Table) اغلب ضروری است. فرمت PST بهصورت بومی در Outlook و Exchange پشتیبانی میشود و ویژگیهای پیشرفتهای مانند ساختار پوشهها و مدیریت پیامهای مبتنی بر MAPI را دارا است.
Aspose.Email برای .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 });