Quản lý Danh sách Phân phối Outlook trong Tệp PST
Danh sách phân phối là một nhóm liên hệ có thể được phần mềm tự động thao tác, cho phép người dùng gửi email tới nhiều người nhận cùng lúc.
Aspose.Email cho API Python cho phép người dùng tạo, quản lý và thao tác với danh sách phân phối. Điều này bao gồm việc tạo và lưu các thành viên từ danh sách, đọc danh sách phân phối, cập nhật các thuộc tính của danh sách và các hoạt động liên quan khác.
Tạo và Lưu Danh sách Phân phối trong Tệp PST
Thêm Danh sách Phân phối với Các Liên hệ PST hiện có
Đoạn mã dưới đây minh họa cách tạo một danh sách phân phối chứa các liên hệ đã được lưu trong tệp PST.
- Tạo một tệp PST mới bằng cách sử dụng PersonalStorage.create() với định dạng UNICODE.
- Tạo một thư mục "Contacts" được định nghĩa sẵn, và thêm hai mục liên hệ (Sebastian Wright và Wichert Kroos) vào thư mục này.
- Thêm liên hệ vào danh sách phân phối:
- Mỗi liên hệ được thêm vào danh sách phân phối như một MapiDistributionListMember.
- Mỗi entry_id của thành viên được liên kết với liên hệ PST tương ứng bằng cách sử dụng strEntryId đã mã hoá.
- Tạo một danh sách phân phối có tên "Contact list" bao gồm các liên hệ đã thêm làm thành viên, và thêm nó vào tệp 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)
Thêm Danh sách Phân phối với Thành viên One‑Off
Thành viên one‑off phù hợp khi các liên hệ không nằm trong sổ địa chỉ Outlook nhưng vẫn cần được đưa vào danh sách phân phối. Đoạn mã mẫu dưới đây cho thấy cách tạo danh sách phân phối với các thành viên one‑off — các liên hệ không được lưu trong tệp PST.
- Tạo một tệp PST mới bằng cách sử dụng PersonalStorage.create() với định dạng UNICODE.
- Thay vì liên kết các liên hệ từ PST, định nghĩa các mục liên hệ mới (John R. Patrick và Tilly Bates) trực tiếp dưới dạng thành viên one‑off.
- Thêm các thành viên một lần (one-off) vào danh sách phân phối.
- Tạo một danh sách phân phối, đặt tên "Simple list", và thêm nó vào thư mục "Contacts" trong tệp 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)
Đọc Danh sách Phân phối từ Tệp PST
Để đọc danh sách phân phối từ tệp PST, hãy sử dụng mẫu mã sau:
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}")
Cập Nhật Danh Sách Phân Phối trong Tệp Outlook PST
Để cập nhật một danh sách phân phối trong tệp PST, ví dụ để thêm thành viên mới, hãy sử dụng đoạn mã mẫu sau:
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)