تحويل OLM إلى PST
تحويل OLM إلى PST
OLM (Outlook for Mac) هو تنسيق ملف يستخدمه Microsoft Outlook لنظام Mac لتخزين رسائل البريد الإلكتروني، جهات الاتصال، التقويمات، المهام، وغيرها من البيانات. وهو التنسيق الأصلي لـ Outlook على Mac، لذا لا يمكن فتح ملف OLM في Outlook على Windows. للعمل مع ملفات OLM على Windows، توفر Aspose Email أدوات مصممة خصيصًا للتعامل مع ملفات OLM. يتمثل نهجها في تحويل ملفات OLM إلى تنسيق PST (Outlook Data File)، والذي يحظى بدعم واسع في بيئات Windows. بعد التحويل إلى تنسيق PST، يمكنك استيراد البيانات إلى Outlook على Windows أو أي عميل بريد إلكتروني متوافق آخر.
النهج الأساسي
يظهر المثال البرمجي التالي كيفية تحويل ملف OLM من Outlook إلى ملف PST باستخدام مكتبة Aspose.Email. يقرأ كل مجلد والرسائل المقابلة من ملف OLM ويضيفها إلى ملف PST الجديد بنفس الترتيب.
- إنشاء مثيل من الـ OlmStorage فئة لفتح ملف OLM المصدر.
- استخدم الـ PersonalStorage.create طريقة لإنشاء ملف PST جديد باسم ملف وإصدار تنسيق محدد.
- قراءة كل مجلد ورسائله بشكل متكرر من ملف OLM.
- استخدم الدالة add_to_pst لإضافة كل مجلد ورسائله إلى ملف PST، مع الحفاظ على الهيكل الأصلي.
import aspose.email as ae
olm = ae.storage.olm.OlmStorage("my.olm")
pst = ae.storage.pst.PersonalStorage.create("my.pst", ae.storage.pst.FileFormatVersion.UNICODE)
for folder in olm.folder_hierarchy:
add_to_pst(pst.root_folder, folder)
هذا الكود هو النص البرمجي الرئيسي لبدء عملية تحويل ملف OLM إلى ملف PST باستخدام مكتبة aspose.email. يوضح كيفية فتح ملف OLM، إنشاء ملف PST جديد، واستدعاء الدالة add_to_pst لتنفيذ مهمة نقل البيانات. يعمل هذا النص كنقطة دخول للهجرة، مستخدمًا الدالة بفعالية للتعامل مع النقل التفصيلي للمجلدات والرسائل.
نقل المجلدات والرسائل بشكل متكرر
يوفر هذا النهج تحكمًا أعمق في عملية معالجة المجلدات والرسائل أثناء ترحيل بيانات البريد الإلكتروني من ملف OLM إلى ملف PST. يستخدم المثال البرمجي أدناه الدالة add_to_pst التي تحدد منطق النقل. دورها الأساسي هو التجول المتكرر عبر المجلدات والرسائل، مع ضمان نقلها وتكرارها بشكل صحيح في تنسيق PST. هذه الدالة قابلة لإعادة الاستخدام بشكل كبير وتُتوقع استخدامها كجزء من تطبيق أو نص أكبر يدير فتح وإنشاء هذه الملفات.
def add_to_pst(pst_folder, olm_folder):
pst_sub_folder = pst_folder.get_sub_folder(olm_folder.name)
for msg in olm_folder.enumerate_mapi_messages():
if pst_sub_folder is None:
pst_sub_folder = pst_folder.add_sub_folder(olm_folder.name, get_container_class(msg.message_class))
pst_sub_folder.add_message(msg)
if pst_sub_folder is None:
pst_sub_folder = pst_folder.add_sub_folder(olm_folder.name)
for olm_sub_folder in olm_folder.sub_folders:
add_to_pst(pst_sub_folder, olm_sub_folder)
تحديد أنواع المجلدات في PST
عند تحويل ملف OLM إلى PST، يجب التأكد من الحفاظ على هيكل المجلدات وأن كل مجلد في ملف PST يمتلك النوع الصحيح. على عكس PST، لا تحتوي مجلدات OLM على أنواع معرفة مسبقًا. لتصنيف ونقل البيانات بشكل صحيح، اتبع الخطوات التالية:
- قراءة الرسالة الأولى من مجلد OLM وتحديد نوعها.
- استخدم هذا النوع من الرسائل لحساب نوع المجلد المناسب في PST باستخدام طريقة التصنيف.
- إنشاء مجلد من النوع المحدد في ملف PST.
- إضافة الرسالة إلى مجلد PST الذي تم إنشاؤه حديثًا.
بالنسبة للرسائل المتبقية في مجلد OLM، نفترض أنها تنتمي إلى نفس الفئة، حيث تم تحديد نوع المجلد مسبقًا.
تساعد الدالة get_container_class على تصنيف عناصر Outlook عن طريق ربط فئات الرسائل المختلفة بأنواع المجلدات المناسبة في PST:
def get_container_class(message_class):
if message_class.startswith("IPM.Contact") or message_class.startswith("IPM.DistList"):
return "IPF.Contact"
if message_class.startswith("IPM.StickyNote"):
return "IPF.StickyNote"
if message_class.startswith("IPM.Activity"):
return "IPF.Journal"
if message_class.startswith("IPM.Task"):
return "IPF.Task"
if message_class.startswith("IPM.Appointment") or message_class.startswith("IPM.Schedule.meeting"):
return "IPF.Appointment"
return "IPF.Note"