العمل مع خصائص MAPI

الوصول إلى خاصية Outlook MAPI وتعيينها

تمثل فئة MapiProperty خاصية MAPI، والتي تحتوي على:

  • الاسم: سلسلة تمثل اسم الخاصية.
  • Tag: قيمة طويلة تمثل علامة الخاصية.
  • البيانات: مصفوفة بايت تمثل بيانات الخاصية.

الحصول على خاصية MAPI باستخدام علامة خاصية MAPI

للحصول على خصائص MAPI:

  1. أنشئ مثيلًا من MapiMessage بتحميله من ملفات أو تدفق.
  2. احصل على MapiProperty من MapiMessage.Properties باستخدام مفاتيح MapiPropertyTag.
  3. احصل على بيانات MapiProperty عبر طريقة GetX.

يظهر مقطع الشيفرة التالي كيفية الحصول على خاصية MAPI باستخدام علامة خاصية MAPI.

تعيين خصائص MAPI

المقتطف البرمجي التالي يوضح لك كيفية تعيين خصائص MAPI.

حيث تعريف طريقة convertDateTime هو كما يلي:

قراءة خصائص MAPI المسماة من ملفات Outlook MSG

توفر Aspose.Email مجموعة من واجهات البرمجة للعمل مع ملفات MSG، بما في ذلك استخراج خصائص MAPI المسماة.

قراءة خصائص MAPI المسماة من ملف MSG

لقراءة خصائص MAPI المسماة، يمكننا استخدام خاصية named_properties لـ MapiMessage الفئة. يظهر المثال البرمجي التالي كيفية تحميل رسالة، واسترجاع جميع خصائص MAPI المسماة، والتكرار على كل خاصية للتحقق من قيمتها:

import aspose.email as ae

msg = ae.mapi.MapiMessage.load("my.msg")

# Get all named MAPI properties
properties = msg.named_properties.values
# Read all properties in foreach loop
for prop in properties:
    #  Read any specific property
    if prop.descriptor.canonical_name == "PidLidSideEffects":
        print(f"{prop.descriptor.canonical_name} = {prop}")
    if prop.descriptor.canonical_name == "PidLidInternetAccountName":
        print(f"{prop.descriptor.canonical_name} = {prop}")

قراءة خاصية MAPI المسماة من المرفق

تمكن Aspose.Email من استرجاع جميع خصائص MAPI المسماة لمرفق. يظهر المثال البرمجي التالي كيفية قراءة خصائص MAPI المسماة من المرفقات:

import aspose.email as ae

msg = ae.mapi.MapiMessage.load("my.msg")

# Get all named MAPI properties
attach_properties = msg.attachments[0].named_properties.values
# Read all properties in foreach loop
for prop in attach_properties:
    #  Read any specific property
    if prop.descriptor.name == "AttachmentOriginalUrl":
        print(f"{prop.descriptor.name} = {prop.get_string()}")
    if prop.descriptor.name == "AttachmentWasSavedToCloud":
        print(f"{prop.descriptor.name} = {prop.get_boolean()}")

إزالة الخصائص من ملفات MSG والمرفقات

يظهر هذا المثال إنشاء رسالة Outlook MSG بمحتوى نصي ومرفق ملف رسالة. كما يوضح كيفية حذف خاصية مرفق من الرسالة المُنشأة.

import aspose.email as ae

# create an MSG
msg = ae.mapi.MapiMessage("from@doamin.com", "to@domain.com", "subject", "body");
msg.set_body_content("<html><body><h1>This is the body content</h1></body></html>", ae.mapi.BodyContentType.HTML)

# load message and add it to created MSG as attachment
attachment = ae.mapi.MapiMessage.load(attach.msg")
msg.attachments.add("Outlook2 Test subject.msg", attachment)

# count of attachment properties before removal
print(f"Before removal = {msg.attachments[0].properties.count}")

# Delete anyone attachment property
msg.attachments[0].remove_property(923467779)

# count of attachment properties after removal
print(f"Before removal = {msg.attachments[0].properties.count}")