مدیریت مخاطبان Outlook در فایلهای PST
افزودن مخاطبین Outlook به فایلهای PST
ایجاد فایل PST جدید و افزودن زیرپوشهها نشان میدهد چگونه یک فایل PST ایجاد کرده و زیرپوشههایی در آن اضافه کنید. با Aspose.Email میتوانید یک MapiContact را به زیرپوشه Contacts یک فایل PST که ایجاد یا بارگذاری کردهاید اضافه کنید. در ادامه مراحل افزودن MapiContact به یک فایل PST آورده شده است:
- ایجاد یک MapiContact شیء.
- ویژگیهای MapiContact مانند نام، جنسیت، آدرس ایمیل، شماره تلفن، آدرسهای فیزیکی و اطلاعات حرفهای را با استفاده از سازندهها و روشهای مختلف تنظیم کنید.
- ایجاد یک PST با استفاده از PersonalStorage.create() متد.
- ایجاد یک پوشه پیشتعریفشده (Contacts) در ریشهٔ فایل PST با دسترسی به پوشه ریشه و سپس فراخوانی add_mapi_message_item() متد.
کد زیر نشان میدهد چگونه یک مخاطب MAPI ایجاد کنید و سپس آن را به پوشه Contacts یک فایل PST تازهساخته اضافه کنید:
ذخیره مخاطبین Outlook به عنوان فایلهای MSG
برای دسترسی به اطلاعات مخاطب از یک فایل PST Outlook و ذخیره آن بر روی دیسک در قالب MSG، Aspose.Email فراهم میکند PersonalStorage و MapiContact کلاسها. کد زیر نشان میدهد چگونه تمام اطلاعات مخاطب را از یک فایل PST بازیابی کرده و در قالب MSG بر روی دیسک ذخیره کنید:
- بارگذاری فایل PST در PersonalStorage کلاس.
- مرور پوشه Contacts.
- دریافت محتویات پوشه Contacts برای به دست آوردن مجموعه پیامها.
- حلقهزدن در مجموعه پیامها.
- متد را فراخوانی کنید PersonalStorage.extract_message() متد برای دریافت اطلاعات مخاطب در MapiMessage کلاس.
- متد را فراخوانی کنید MapiMessage.save() متد برای ذخیره مخاطب در دیسک با فرمت MSG.
صدور مخاطبین Outlook به عنوان فایلهای VCF
برای دسترسی به اطلاعات مخاطب از یک فایل PST Microsoft Outlook و ذخیرهسازی آن در دیسک به فرمت vCard (VCF)، از PersonalStorage و MapiContact کلاسها. کد زیر یک فایل PST را از دیسک بارگذاری میکند و تمام مخاطبین را به فرمت vCard (VCF) ذخیره میکند. فایلهای VCF سپس میتوانند در هر برنامهٔ دیگری که میتواند فایل استاندارد vCard را بارگذاری کند، استفاده شوند. اگر هر فایل VCF را در Microsoft Outlook باز کنید، شبیه تصویر زیر خواهد بود.
![]() |
|---|
کد زیر نشان میدهد چگونه مخاطبین را از Outlook PST به فرمت vCard (VCF) صادر کنید:
- استفاده کنید PersonalStorage.from_file برای باز کردن فایل PST.
- دسترسی به پوشه Contacts با استفاده از 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
API Aspose.Email برای Python امکان ایجاد فهرست توزیع - مجموعهای از چندین مخاطب - را فراهم میکند. فهرست توزیع میتواند در دیسک با فرمت MSG Outlook ذخیره شده و با باز کردن آن در MS Outlook مشاهده/ویرایش شود.
ایجاد و ذخیرهٔ فهرست توزیع
کد زیر نشان میدهد چگونه یک فایل PST ایجاد کرده و فهرست توزیع اضافه کنید. همچنین شامل ایجاد و افزودن مخاطبین به فهرست توزیع داخل فایل PST است.
- تعریف جزئیات مخاطب - تنظیم displayName و ایمیل برای هر مخاطب.
- یک فایل PST جدید ایجاد کنید با استفاده از PersonalStorage.create() با فرمت یونیکد.
- ایجاد پوشه Contacts با استفاده از 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()
بهروزرسانی فهرست توزیع در فایلهای PST Outlook
برای بروز رسانی فهرست توزیع در یک فایل 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)
