การจัดการรายชื่อผู้ติดต่อ Outlook ในไฟล์ PST

เพิ่มรายชื่อ Outlook ไปยังไฟล์ PST

สร้างไฟล์ PST ใหม่และเพิ่มโฟลเดอร์ย่อย สาธิตวิธีสร้างไฟล์ PST และรวมโฟลเดอร์ย่อยภายใน ด้วย Aspose.Email คุณสามารถเพิ่ม MapiContact ลงในโฟลเดอร์ย่อย Contacts ของไฟล์ PST ที่คุณสร้างหรือโหลดไว้ ด้านล่างเป็นขั้นตอนการเพิ่ม MapiContact ลงในไฟล์ PST:

  1. สร้าง MapiContact อ็อบเจ็กต์.
  2. ตั้งค่าคุณสมบัติของ MapiContact เช่น ชื่อ, เพศ, ที่อยู่อีเมล, หมายเลขโทรศัพท์, ที่อยู่ทางกายภาพ, และข้อมูลอาชีพโดยใช้คอนสตรัคเตอร์และเมธอดต่าง ๆ
  3. สร้าง PST ด้วย PersonalStorage.create() เมธอด.
  4. สร้างโฟลเดอร์ที่กำหนดล่วงหน้า (Contacts) ที่รากของไฟล์ PST โดยเข้าถึงโฟลเดอร์รากและจากนั้นเรียก add_mapi_message_item() เมธอด.

โค้ดตัวอย่างต่อไปนี้แสดงวิธีสร้างติดต่อ MAPI แล้วเพิ่มลงในโฟลเดอร์ Contacts ของไฟล์ PST ที่สร้างใหม่:

บันทึกรายชื่อ Outlook เป็นไฟล์ MSG

เพื่อเข้าถึงข้อมูลรายชื่อจากไฟล์ Outlook PST และบันทึกรายชื่อลงดิสก์ในรูปแบบ MSG, Aspose.Email ให้ PersonalStorage และ MapiContact คลาส ตัวอย่างโค้ดด้านล่างแสดงวิธีดึงข้อมูลรายชื่อทั้งหมดจากไฟล์ PST และบันทึกลงดิสก์ในรูปแบบ MSG:

  1. โหลดไฟล์ PST ใน PersonalStorage คลาส.
  2. เรียกดูโฟลเดอร์ Contacts.
  3. รับเนื้อหาของโฟลเดอร์ Contacts เพื่อรับชุดข้อความ.
  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. เข้าถึงโฟลเดอร์ Contacts โดยใช้ get_sub_folder.
  3. วนลูปผ่านรายชื่อ:
    • ใช้ get_contents() เพื่อรับข้อมูลข้อความทั้งหมดในโฟลเดอร์.
    • วนผ่าน message_info_collection ด้วยลูป.
  4. ดึงข้อมูลแต่ละรายชื่อโดยใช้ pst.extract_message(message_info) และเก็บเป็นรายการข้อความ MAPI.
  5. พิมพ์ชื่อและ entry ID ของทุกรายชื่อ.
  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 API ทำให้สามารถสร้างรายการจัดส่ง - คอลเลกชันของหลายรายชื่อ รายการจัดส่งสามารถบันทึกลงดิสก์ในรูปแบบ Outlook MSG และสามารถดู/จัดการได้โดยการเปิดใน MS Outlook.

สร้างและบันทึกรายการแจกจ่าย

ตัวอย่างโค้ดด้านล่างสาธิตวิธีสร้างไฟล์ PST และเพิ่มรายการจัดส่ง รวมถึงการสร้างและเพิ่มรายชื่อเข้าไปในรายการจัดส่งภายในไฟล์ PST.

  1. กำหนดรายละเอียดรายชื่อ - ตั้งค่า displayName และอีเมลสำหรับแต่ละรายชื่อ.
  2. สร้างไฟล์ PST ใหม่โดยใช้ PersonalStorage.create() ด้วยรูปแบบ UNICODE.
  3. สร้างโฟลเดอร์ Contacts โดยใช้ 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)