إدارة جهات اتصال Outlook في ملفات PST
إضافة جهات اتصال Outlook إلى ملفات PST
إنشاء ملف PST جديد وإضافة مجلدات فرعية يوضح كيفية إنشاء ملف PST وإضافة مجلدات فرعية بداخله. باستخدام Aspose.Email يمكنك إضافة MapiContact إلى المجلد الفرعي للاتصالات في ملف PST الذي قمت بإنشائه أو تحميله. إليك الخطوات لإضافة MapiContact إلى ملف PST:
- إنشاء MapiContact الكائن.
- قم بتعيين خصائص MapiContact مثل الاسم، الجنس، عناوين البريد الإلكتروني، أرقام الهواتف، العناوين الفعلية، والمعلومات المهنية باستخدام مُنشئات وأساليب مختلفة.
- إنشاء PST باستخدام الـ PersonalStorage.create() طريقة.
- إنشاء مجلد مُعرّف مسبقًا (جهات الاتصال) في جذر ملف PST عبر الوصول إلى المجلد الجذري ثم استدعاء add_mapi_message_item() طريقة.
يعرض مقطع الشيفرة التالي كيفية إنشاء جهة اتصال MAPI ثم إضافتها إلى مجلد الاتصالات في ملف PST تم إنشاؤه حديثًا:
حفظ جهات اتصال Outlook كملفات MSG
للوصول إلى معلومات جهات الاتصال من ملف Outlook PST وحفظها على القرص بتنسيق MSG، توفر Aspose.Email الـ PersonalStorage والـ MapiContact الفئات. يوضح مقطع الشيفرة أدناه كيفية استرجاع جميع معلومات جهات الاتصال من ملف PST وحفظها على القرص بتنسيق MSG:
- تحميل ملف PST في الـ PersonalStorage فئة.
- تصفح مجلد جهات الاتصال.
- احصل على محتويات مجلد جهات الاتصال للحصول على مجموعة الرسائل.
- تكرار عبر مجموعة الرسائل.
- استدعِ الـ PersonalStorage.extract_message() طريقة للحصول على معلومات الجهة الاتصال في الـ MapiMessage فئة.
- استدعِ الـ MapiMessage.save() طريقة لحفظ الجهة الاتصال على القرص بصيغة MSG.
تصدير جهات اتصال Outlook كملفات VCF
للوصول إلى معلومات جهة الاتصال من ملف Microsoft Outlook PST وحفظها على القرص بصيغة vCard (VCF)، استخدم PersonalStorage و MapiContact الفئات. يقوم الشيفرة أدناه بتحميل ملف PST من القرص ويحفظ جميع جهات الاتصال إلى صيغة vCard (VCF). يمكن بعد ذلك استخدام ملفات VCF في أي برنامج آخر يدعم ملف vCard القياسي. إذا فتحت أي ملف VCF في Microsoft Outlook، سيظهر كما هو في الصورة أدناه.
![]() |
|---|
يعرض مقطع الشيفرة التالي كيفية تصدير جهات الاتصال من Outlook PST إلى صيغة vCard (VCF):
- استخدام PersonalStorage.from_file لفتح ملف PST.
- الوصول إلى مجلد الاتصالات باستخدام get_sub_folder.
- التكرار عبر جهات الاتصال:
- استخدام get_contents() للحصول على جميع معلومات الرسائل في المجلد.
- التكرار عبر message_info_collection مع حلقة.
- استخراج كل جهة اتصال باستخدام pst.extract_message(message_info) وتخزينها كعنصر رسالة MAPI.
- طباعة اسم ومعرف الإدخال لكل جهة اتصال.
- حفظ جهة الاتصال كملف 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.
- تعريف تفاصيل جهة الاتصال - تعيين displayName والبريد الإلكتروني لكل جهة اتصال.
- أنشئ ملف PST جديد باستخدام PersonalStorage.create() بتنسيق UNICODE.
- إنشاء مجلد جهات الاتصال باستخدام create_predefined_folder().
- إنشاء مثال MapiContact كائنات تحتوي على الاسم المعروض والبريد الإلكتروني، ثم أضف جهات الاتصال إلى المجلد باستخدام add_mapi_message_item().
- إنشاء أعضاء قائمة التوزيع عن طريق إنشاء نسخة من MapiDistributionListMember لكل جهة اتصال وتعيين entry_id باستخدام فك ترميز base64.
- إضافة أعضاء إلى MapiDistributionListMemberCollection.
- إنشاء قائمة توزيع عن طريق إنشاء نسخة من MapiDistributionList, مع تعيين النص والموضوع.
- استخدام 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)
