Управление на разпространителни списъци в Outlook в PST файлове
Разпределителен списък е група от контакти, която може да се манипулира от автоматизиран софтуер, позволявайки на потребителя да изпраща имейли до множество получатели едновременно.
Aspose.Email за Python API позволява на потребителите да създават, управляват и манипулират разпространителни списъци. Това включва създаване и запазване на членове от списъка, четене на разпространителни списъци, актуализиране на свойства на списъка и други свързани операции.
Създаване и запазване на разпространителни списъци в PST файлове
Добавяне на разпространителен списък със съществуващи PST контакти
Следният кодов откъс демонстрира как да създадете разпространителен списък, съдържащ контакти, които вече са записани в PST файл.
- Създайте нов PST файл, използвайки PersonalStorage.create() с UNICODE формат.
- Създайте предварително дефинирана папка "Contacts" и добавете два записа за контакти (Sebastian Wright и Wichert Kroos) към тази папка.
- Добавяне на контакти към разпространителния списък:
- Всеки контакт се добавя към разпространителния списък като MapiDistributionListMember.
- Всеки entry_id на член е свързан със съответния PST контакт, използвайки кодиран strEntryId.
- Създайте разпространителен списък, наречен "Contact list", който включва добавените контакти като членове, и го добавете към 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)
Добавяне на разпространителен списък с еднократни членове
Еднократните членове са подходящи, когато контактите не са част от адресната книга на Outlook, но все пак трябва да бъдат включени в разпространителния списък. Следният пример с код демонстрира как да създадете разпространителен списък с еднократни членове — контакти, които не са записани в PST файла.
- Създайте нов PST файл, използвайки PersonalStorage.create() с UNICODE формат.
- Вместо да свързвате контакти от PST, дефинирайте нови записи за контакти (John R. Patrick и Tilly Bates) директно като еднократни членове.
- Добавете еднократните членове към разпространителен списък.
- Създайте разпространителен списък, наречен "Simple list", и го добавете към папката "Contacts" в 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)
Четене на дистрибуционни списъци от 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)
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}")
Обновяване на разпространителните списъци в 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 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)