إدارة ملفات Outlook for Mac OLM
OLM (Outlook for Mac Archive) هو تنسيق ملف مرتبط بـ Microsoft Outlook for Mac. يُستخدم لأرشفة وتخزين رسائل البريد الإلكتروني، جهات الاتصال، عناصر التقويم، المهام، وغيرها من بيانات Outlook على أجهزة ماك. تُعد ملفات OLM صيغة نسخة احتياطية أو أرشيفية، مما يتيح للمستخدمين حفظ بيانات Outlook for Mac للرجوع إليها مستقبلاً أو للترحيل. من المهم ملاحظة أن ملفات OLM خاصة بـ Outlook for Mac، ولا تتوافق مع تنسيق الملف PST (Personal Storage Table) المستخدم في Outlook على نظام Windows. إذا كنت بحاجة إلى نقل بيانات Outlook بين منصات مختلفة، ستكون أدوات التحويل مفيدة. تقدم Aspose.Email مثل هذه الأدوات بما في ذلك الفتح، القراءة وغيرها من الوظائف للعمل مع ملفات OLM.
فتح ملفات Outlook OLM
يمكن فتح ملفات بصيغة OLM بطريقتين:
- باستخدام المُنشئ
- باستخدام الطريقة الساكنة ‘from_file’
فتح ملفات Outlook OLM باستخدام منشئي بايثون
لفتح ملف، استدعِ مُنشئ الـ OlmStorage فئة ومرّر اسم الملف الكامل أو الدفق كمعامل له:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
فتح ملفات OLM باستخدام طريقة FromFile الساكنة في بايثون
لفتح ملف، استخدم الطريقة الساكنة ‘from_file’ الخاصة بـ OlmStorage فئة ومرّر اسم الملف الكامل أو الدفق كمعامل له:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
إدارة المجلدات والبريد في ملفات OLM
الوصول إلى هيكل المجلد عودياً
تسمح لك Aspose.Email API بتصوير وعرض شجرة المجلدات المستخرجة من ملف OLM باستخدام دالة print_all_folders. تأخذ هذه الدالة خاصية folder_hierarchy الخاصة بـ OlmStorage الفئة، مع مستوى المسافة البادئة كمدخل، وتتنقل عودياً عبر الشجرة لطباعة اسم كل مجلد بالمسافة البادئة المناسبة.
فيما يلي عينة الكود التي توضح كيفية استخدام دالة print_all_folders لعرض شجرة المجلدات من ملف OLM:
import aspose.email as ae
def print_all_folders(folder_hierarchy, indent):
for folder in folder_hierarchy:
print(f"{indent}{folder.name}")
print_all_folders(folder.sub_folders, indent + "-")
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_all_folders(olm.folder_hierarchy, "")
عينة الكود أعلاه تهدف إلى عرض شجرة مجلدات ملف OLM عبر دالة عودية بطريقة أكثر تنظيمًا وقابلية للقراءة.
الوصول إلى هيكل المجلد مباشرة
كما تتيح Aspose.Email إمكانية الوصول مباشرة إلى هيكل المجلدات من ملف OLM باستخدام طريقة get_folders() الخاصة بـ OlmStorage فئة.
فيما يلي عينة كود للوصول مباشرة إلى هيكل المجلدات:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folders = olm.get_folders()
استرجاع المجلدات بالاسم
يمكن استرجاع أي مجلد باسمه باستخدام طريقة get_folder(name, ignore_case) الخاصة بـ OlmStorage الفئة. هذه الطريقة تتطلب اسم المجلد ومعامل حساسية الحالة.
إليك عينة كود توضح كيفية استرجاع مجلد باسمه:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
قائمة الرسائل من ملفات Outlook OLM
يمكن استخدام مكتبة Aspose.Email لقراءة واستخراج رسائل البريد الإلكتروني من ملفات Outlook for Mac (OLM). يمكنك الحصول على قائمة الرسائل باستخدام الطرق التالية لـ OlmFolder الفئة التي تمثل مجلدًا:
- enumerate_messages() - يتجول عبر كل رسالة بريد إلكتروني في المجلد. تُعيد هذه الطريقة الرسائل ككائنات من النوع OlmMessageInfo الفئة التي توفر معلومات أساسية عن كل رسالة بريد إلكتروني، مثل الموضوع، المرسل، التاريخ، إلخ.
- enumerate_mapi_messages() - أيضًا يتجول عبر كل رسالة بريد إلكتروني في مجلد، لكن في هذه الحالة يُعيد الرسائل ككائنات من النوع MapiMessage الفئة تمثل رسالة بريد إلكتروني بطريقة أكثر تفصيلاً ومحددة لـ MAPI. توفر وصولاً إلى مجموعة واسعة من الخصائص وتفاصيل رسالة البريد، مما يسمح بمعالجة أكثر تقدماً وتخصصاً.
تُظهر عينات الكود أدناه كيفية استخراج موضوعات البريد الأساسية وحفظ رسائل البريد التفصيلية من ملف Outlook OLM باستخدام enumerate_messages() لاستخراج الموضوع و enumerate_mapi_messages() لحفظ الرسائل كملفات .msg.
استخراج معلومات أساسية للبريد باستخدام طريقة ’enumerate_messages()’
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
for message_info in folder.enumerate_messages():
print(message_info.subject)
حفظ رسائل البريد التفصيلية باستخدام طريقة ’enumerate_mapi_messages()’
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
for msg in folder.enumerate_mapi_messages():
msg.save(f"{msg.subject}.msg")
استرجاع العدد الإجمالي للرسائل في مجلد OLM
الـ OlmFolder الفئة تمنحك مزيدًا من الخيارات مع الطرق التالية:
- has_messages - يحصل على قيمة تشير إلى ما إذا كان المجلد الحالي يحتوي على رسائل.
- message_count - يحصل على عدد الرسائل.
عينة الكود أدناه توضح كيفية استخدام هذه الطرق:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
if folder.has_messages:
print(f"Message count: {folder.message_count}")
الحصول على تواريخ تعديل رسائل Outlook OLM أو تعيينها
تمكنك Aspose.Email من استرجاع معلومات عن وقت التعديل الأخير لرسالة بريد إلكتروني. خاصية modified_date الخاصة بـ OlmMessageInfo الفئة تمثل التاريخ والوقت الذي تم فيه تعديل الرسالة آخر مرة.
إليك مثال يُظهر استخدام الخاصية:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
for message_info in folder.enumerate_messages():
modifiedDate = message_info.modified_date
استخراج محتوى OLM
استخراج رسائل البريد من ملفات Outlook OLM
يمكنك استرجاع بيانات رسالة MAPI الفعلية من تخزين البريد الإلكتروني باستخدام طريقة extract_mapi_message(message_info) الخاصة بـ OlmStorage الفئة. تستخرج هذه الطريقة رسالة MAPI من التخزين بناءً على message_info المقدَّة.
يوضح عينة الكود أدناه كيفية استخدام هذه الطريقة:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
for message_info in folder.enumerate_messages():
msg = olm.extract_mapi_message(message_info)
استخراج رسائل Outlook من ملفات OLM بواسطة المعرف
للوصول إلى بيانات رسالة MAPI، يمكنك استخدام الخاصية entry_id للحصول على المعرف الفريد (Entry ID) للرسالة باستخدام OlmMessageInfo الفئة. ثم يمكنك الاستفادة من طريقة extract_mapi_message(id) الخاصة بـ OlmStorage فئة، مع تمرير معرّف الدخول كمعامل لاسترجاع رسالة MAPI المرتبطة بهذا المعرف المحدد. توضح عينة الشيفرة التالية استخدام هذه الميزات:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage.from_file(fileName)
folder = olm.get_folder("Inbox", True)
for message_info in folder.enumerate_messages():
msg = olm.extract_mapi_message(message_info.entry_id)
إدارة هيكل مجلد OLM
الحصول على مسارات المجلدات في ملفات Outlook OLM
تتيح Aspose.Email الحصول على مسار هرمي أو موقع المجلد داخل ملف Outlook OLM. توفر الواجهة البرمجية خاصية path الخاصة بـ OlmFolder فئة تُعيد مسار المجلد. توضح عينة الشيفرة التالية استخدام هذه الخاصية:
import aspose.email as ae
def print_path(storage, folders):
for folder in folders:
# print the current folder path
print(folder.path)
if folder.sub_folders:
print_path(storage, folder.sub_folders)
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_path(olm, olm.folder_hierarchy)
عدد العناصر في مجلدات Outlook OLM
توفر Aspose.Email القدرة على حساب إجمالي عدد رسائل البريد الإلكتروني الموجودة داخل مجلد معين في ملف Outlook OLM. خاصية message_count الخاصة بـ OlmFolder فئة تُعيد عدد العناصر الإجمالي (رسائل البريد الإلكتروني) المخزن داخل مجلد محدد في ملف OLM. توضح عينة الشيفرة التالية استخدام هذه الخاصية:
import aspose.email as ae
def print_message_count(folders):
for folder in folders:
print(f"Message Count [{folder.name}]: {folder.message_count}")
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
print_message_count(olm.folder_hierarchy)
الحصول على إجمالي عدد العناصر في ملفات Outlook OLM
طريقة get_total_items_count() الخاصة بـ OlmStorage الفئة تُعيد إجمالي عدد عناصر الرسائل الموجودة في تخزين OLM كما هو موضح في عينة الكود أدناه:
import aspose.email as ae
fileName = "my.olm"
olm = ae.storage.olm.OlmStorage(fileName)
count = olm.get_total_items_count()
إدارة فئات Outlook
استرجاع ألوان فئات Outlook
مع Aspose.Email، يمكنك بسهولة استرجاع واستخدام ألوان الفئات المرتبطة بفئات عناصر Outlook المخزنة في ملفات OLM. الـ OlmItemCategory فئة تسمح لك بالوصول إلى أسماء الفئات وألوانها المقابلة الممثلة بصيغة سداسية عشرية. الـ OlmStorage الفئة تتضمن طريقة GetCategories() لاسترجاع قائمة الفئات من تخزين OLM. من خلال تنفيذ عينة الكود أدناه، يمكنك بسهولة استرجاع جميع الفئات المستخدمة من ملف تخزين OML والوصول إلى اسم الفئة ولونها.
with OlmStorage.FromFile("storage.olm") as olm:
categories = olm.GetCategories()
for category in categories:
print(f"Category name: {category.Name}")
# Color is represented as a hexadecimal value: #rrggbb
print(f"Category color: {category.Color}")
بالإضافة إلى ذلك، يمكنك استرجاع لون الفئة المرتبط برسائل محددة عن طريق التكرار عبر الرسائل في مجلد والوصول إلى لون الفئة المقابل بناءً على اسم الفئة.
for msg in olm.EnumerateMessages(folder):
if msg.Categories is not None:
for msgCategory in msg.Categories:
print(f"Category name: {msgCategory}")
categoryColor = next((c.Color for c in categories if c.Name.lower() == msgCategory.lower()), None)
if categoryColor is not None:
print(f"Category color: {categoryColor}")