إدارة جهات اتصال Outlook في ملفات PST

إضافة جهات اتصال Outlook إلى ملفات PST

إنشاء ملف PST جديد وإضافة مجلدات فرعية يوضح كيفية إنشاء ملف PST وإضافة مجلدات فرعية بداخله. باستخدام Aspose.Email يمكنك إضافة MapiContact إلى المجلد الفرعي للاتصالات في ملف PST الذي قمت بإنشائه أو تحميله. إليك الخطوات لإضافة MapiContact إلى ملف PST:

  1. إنشاء MapiContact الكائن.
  2. قم بتعيين خصائص MapiContact مثل الاسم، الجنس، عناوين البريد الإلكتروني، أرقام الهواتف، العناوين الفعلية، والمعلومات المهنية باستخدام مُنشئات وأساليب مختلفة.
  3. إنشاء PST باستخدام الـ PersonalStorage.create() طريقة.
  4. إنشاء مجلد مُعرّف مسبقًا (جهات الاتصال) في جذر ملف PST عبر الوصول إلى المجلد الجذري ثم استدعاء add_mapi_message_item() طريقة.

يعرض مقطع الشيفرة التالي كيفية إنشاء جهة اتصال MAPI ثم إضافتها إلى مجلد الاتصالات في ملف PST تم إنشاؤه حديثًا:

حفظ جهات اتصال Outlook كملفات MSG

للوصول إلى معلومات جهات الاتصال من ملف Outlook PST وحفظها على القرص بتنسيق MSG، توفر Aspose.Email الـ PersonalStorage والـ MapiContact الفئات. يوضح مقطع الشيفرة أدناه كيفية استرجاع جميع معلومات جهات الاتصال من ملف PST وحفظها على القرص بتنسيق MSG:

  1. تحميل ملف PST في الـ PersonalStorage فئة.
  2. تصفح مجلد جهات الاتصال.
  3. احصل على محتويات مجلد جهات الاتصال للحصول على مجموعة الرسائل.
  4. تكرار عبر مجموعة الرسائل.
  5. استدعِ الـ PersonalStorage.extract_message() طريقة للحصول على معلومات الجهة الاتصال في الـ MapiMessage فئة.
  6. استدعِ الـ MapiMessage.save() طريقة لحفظ الجهة الاتصال على القرص بصيغة MSG.

تصدير جهات اتصال Outlook كملفات VCF

للوصول إلى معلومات جهة الاتصال من ملف Microsoft Outlook PST وحفظها على القرص بصيغة vCard (VCF)، استخدم PersonalStorage و MapiContact الفئات. يقوم الشيفرة أدناه بتحميل ملف PST من القرص ويحفظ جميع جهات الاتصال إلى صيغة vCard (VCF). يمكن بعد ذلك استخدام ملفات VCF في أي برنامج آخر يدعم ملف vCard القياسي. إذا فتحت أي ملف VCF في Microsoft Outlook، سيظهر كما هو في الصورة أدناه.

todo:image_alt_text

يعرض مقطع الشيفرة التالي كيفية تصدير جهات الاتصال من Outlook PST إلى صيغة vCard (VCF):

  1. استخدام PersonalStorage.from_file لفتح ملف PST.
  2. الوصول إلى مجلد الاتصالات باستخدام get_sub_folder.
  3. التكرار عبر جهات الاتصال:
  4. استخراج كل جهة اتصال باستخدام pst.extract_message(message_info) وتخزينها كعنصر رسالة MAPI.
  5. طباعة اسم ومعرف الإدخال لكل جهة اتصال.
  6. حفظ جهة الاتصال كملف VCF باستخدام contact.save.
from aspose.email.storage.pst import PersonalStorage
from aspose.email.mapi import ContactSaveFormat

# Load the Outlook PST file
pst = PersonalStorage.from_file("my.pst")

# Get the Contacts folder
folder_info = pst.root_folder.get_sub_folder("Contacts")

# Loop through all the contacts in this folder
message_info_collection = folder_info.get_contents()
for message_info in message_info_collection:
    # Get the contact information
    contact = pst.extract_message(message_info).to_mapi_message_item()

    # Display some contents on screen
    print("Name: " + contact.name_info.display_name + " - " + message_info.entry_id_string)

    # Save to disk in vCard VCF format
    contact.save("D:\\" + contact.name_info.display_name + ".vcf", ContactSaveFormat.V_CARD)

إدارة قوائم توزيع Outlook في ملفات PST

تتيح Aspose.Email لواجهة برمجة تطبيقات Python إنشاء قائمة توزيع - مجموعة من جهات اتصال متعددة. يمكن حفظ قائمة التوزيع على القرص بتنسيق Outlook MSG ويمكن عرضها/معالجتها بفتحها في MS Outlook.

إنشاء وحفظ قوائم التوزيع

يوضح مقطع الشيفرة أدناه كيفية إنشاء ملف PST وإضافة قائمة توزيع. كما يتضمن إنشاء وإضافة جهات اتصال إلى قائمة التوزيع داخل ملف PST.

  1. تعريف تفاصيل جهة الاتصال - تعيين displayName والبريد الإلكتروني لكل جهة اتصال.
  2. أنشئ ملف PST جديد باستخدام PersonalStorage.create() بتنسيق UNICODE.
  3. إنشاء مجلد جهات الاتصال باستخدام create_predefined_folder().
  4. إنشاء مثال MapiContact كائنات تحتوي على الاسم المعروض والبريد الإلكتروني، ثم أضف جهات الاتصال إلى المجلد باستخدام add_mapi_message_item().
  5. إنشاء أعضاء قائمة التوزيع عن طريق إنشاء نسخة من MapiDistributionListMember لكل جهة اتصال وتعيين entry_id باستخدام فك ترميز base64.
  6. إضافة أعضاء إلى MapiDistributionListMemberCollection.
  7. إنشاء قائمة توزيع عن طريق إنشاء نسخة من MapiDistributionList, مع تعيين النص والموضوع.
  8. استخدام add_mapi_message_item() لإضافة قائمة التوزيع إلى مجلد الاتصالات.
displayName1 = "Sebastian Wright"
email1 = "SebastianWright@dayrep.com"

displayName2 = "Wichert Kroos"
email2 = "WichertKroos@teleworm.us"

personalStorage = PersonalStorage.create(dataDir + "CreateDistributionListInPST_out.pst", FileFormatVersion.UNICODE)

contactFolder = personalStorage.create_predefined_folder("Contacts", StandardIpmFolder.CONTACTS)

   # Create contacts
   strEntryId1 = contactFolder.add_mapi_message_item(MapiContact(displayName1, email1))
   strEntryId2 = contactFolder.add_mapi_message_item( MapiContact(displayName2, email2))

   member1 = MapiDistributionListMember(displayName1, email1)
   member1.entry_id_type = MapiDistributionListEntryIdType.CONTACT
   member1.entry_id = base64.b64decode( bytes(strEntryId1, "utf-8") )

   member2 = MapiDistributionListMember(displayName2, email2)
   member2.entry_id_type = MapiDistributionListEntryIdType.CONTACT
   member2.entry_id = base64.b64decode( bytes(strEntryId1, "utf-8") )

   members = MapiDistributionListMemberCollection()
   members.append(member1)
   members.append(member2)

   distribution_list = MapiDistributionList("Contact list", members)
   distribution_list.body = "Distribution List Body"
   distribution_list.subject = "Sample Distribution List using Aspose.Email"     
                    
   # Add distribution list to PST 
   contactFolder.add_mapi_message_item(distribution_list);

قراءة قوائم التوزيع من ملفات PST

يعرض مقطع الشيفرة التالي كيفية قراءة قائمة توزيع من ملف PST:

from aspose.email.mapi import MapiMessage

# Load the MAPI message from file
message = MapiMessage.load("dl.msg")

# Convert the message to MAPI distribution list
dlist = message.to_mapi_message_item()

تحديث قوائم التوزيع في ملفات Outlook PST

لتحديث قائمة توزيع في ملف PST، على سبيل المثال لإضافة عضو جديد، استخدم مثال الشيفرة التالي:

import aspose.email as ae

pst = ae.storage.pst.PersonalStorage.from_file("my.pst")

folder = pst.get_predefined_folder(ae.storage.pst.StandardIpmFolder.CONTACTS)

# Add a new member to each distribution list in pst
for msg in folder.enumerate_messages():
    # Check if the message has the "IPM.DistList" message class
    if msg.message_class == "IPM.DistList":
        dist_list = pst.extract_message(msg).to_mapi_message_item()
        # Create a new member to add
        member = ae.mapi.MapiDistributionListMember("Edward R. Manuel", "EdwardRManuel@example.com")
        dist_list.members.append(member)
        # Update DL in PST
        folder.update_message(msg.entry_id_string, dist_list)