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.
- Buat file PST baru menggunakan PersonalStorage.create() dengan format UNICODE.
- Buat folder "Contacts" yang telah ditentukan sebelumnya, dan tambahkan dua entri kontak (Sebastian Wright dan Wichert Kroos) ke folder ini.
- 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.
- 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.
- Buat file PST baru menggunakan PersonalStorage.create() dengan format UNICODE.
- Alih-alih menautkan kontak dari PST, definisikan entri kontak baru (John R. Patrick dan Tilly Bates) langsung sebagai anggota one-off.
- Tambahkan anggota one-off ke daftar distribusi.
- 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)