Mengelola Daftar Distribusi Outlook dalam File PST

Daftar distribusi adalah kelompok kontak yang dapat dimanipulasi oleh perangkat lunak otomatis yang memungkinkan pengguna mengirim email ke banyak penerima secara bersamaan.

Aspose.Email for Python API memungkinkan pengguna untuk membuat, mengelola, dan memanipulasi daftar distribusi. Ini termasuk membuat dan menyimpan anggota dari daftar, membaca daftar distribusi, memperbarui properti daftar, dan operasi terkait lainnya.

Buat dan Simpan Daftar Distribusi dalam File PST

Tambahkan Daftar Distribusi dengan Kontak PST yang Ada

Potongan kode di bawah ini menunjukkan cara membuat daftar distribusi yang berisi kontak yang sudah disimpan dalam file PST.

  1. Buat file PST baru menggunakan PersonalStorage.create() dengan format UNICODE.
  2. Buat folder "Contacts" yang telah ditentukan sebelumnya, dan tambahkan dua entri kontak (Sebastian Wright dan Wichert Kroos) ke folder ini.
  3. Tambah kontak ke daftar distribusi:
    • Setiap kontak ditambahkan ke daftar distribusi sebagai MapiDistributionListMember.
    • Setiap entry_id anggota ditautkan ke kontak PST yang sesuai menggunakan strEntryId yang terkode.
  4. Buat daftar distribusi bernama "Contact list" yang mencakup kontak yang ditambahkan sebagai anggota, dan tambahkan ke file PST.
import aspose.email as ae

displayName1 = "Sebastian Wright"
email1 = "SebastianWright@dayrep.com"

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

pst = ae.storage.pst.PersonalStorage.create("target.pst", ae.storage.pst.FileFormatVersion.UNICODE)

contactFolder = pst.create_predefined_folder("Contacts", ae.storage.pst.StandardIpmFolder.CONTACTS)

strEntryId1 = contactFolder.add_mapi_message_item(ae.mapi.MapiContact(displayName1, email1))
strEntryId2 = contactFolder.add_mapi_message_item(ae.mapi.MapiContact(displayName2, email2))

member1 = ae.mapi.MapiDistributionListMember(displayName1, email1)
member1.entry_id_type = ae.mapi.MapiDistributionListEntryIdType.CONTACT
member1.entry_id = strEntryId1.encode()

member2 = ae.mapi.MapiDistributionListMember(displayName2, email2)
member2.entry_id_type = ae.mapi.MapiDistributionListEntryIdType.CONTACT
member2.entry_id = strEntryId2.encode()

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

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

Tambahkan Daftar Distribusi dengan Anggota One-Off

Anggota one-off cocok ketika kontak tidak termasuk dalam buku alamat Outlook namun tetap perlu dimasukkan ke dalam daftar distribusi. Contoh kode berikut menunjukkan cara membuat daftar distribusi dengan anggota one-off — kontak yang tidak disimpan dalam file PST.

  1. Buat file PST baru menggunakan PersonalStorage.create() dengan format UNICODE.
  2. Alih-alih menautkan kontak dari PST, definisikan entri kontak baru (John R. Patrick dan Tilly Bates) langsung sebagai anggota one-off.
  3. Tambahkan anggota one-off ke daftar distribusi.
  4. Buat daftar distribusi, bernama "Simple list", dan tambahkan ke folder "Contacts" dalam file PST.
import aspose.email as ae

displayName1 = "Sebastian Wright"
email1 = "SebastianWright@dayrep.com"

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

pst = ae.storage.pst.PersonalStorage.create("target.pst", ae.storage.pst.FileFormatVersion.UNICODE)

contact_folder = pst.create_predefined_folder("Contacts", ae.storage.pst.StandardIpmFolder.CONTACTS)

one_off_members = ae.mapi.MapiDistributionListMemberCollection()
one_off_members.append(ae.mapi.MapiDistributionListMember("John R. Patrick", "JohnRPatrick@armyspy.com"))
one_off_members.append(ae.mapi.MapiDistributionListMember("Tilly Bates", "TillyBates@armyspy.com"))

one_off_members_list = ae.mapi.MapiDistributionList("Simple list", one_off_members)
contact_folder.add_mapi_message_item(one_off_members_list)

Baca Daftar Distribusi dari File PST

Untuk membaca daftar distribusi dari PST, gunakan contoh kode berikut:

import aspose.email as ae

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

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

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()
        # Now, you can work with the distribution list
        # (e.g., access its members, display its properties, or make modifications)
        for member in dist_list.members:
            print(f"{member.display_name}")

Perbarui Daftar Distribusi di File PST Outlook

Untuk memperbarui daftar distribusi dalam file PST, misalnya menambahkan anggota baru, gunakan contoh kode berikut:

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 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)