Gestione delle liste di distribuzione di Outlook nei file PST
Una lista di distribuzione è un gruppo di contatti che può essere manipolato da software automatizzato, consentendo all’utente di inviare email a più destinatari simultaneamente.
L’API Aspose.Email per Python consente agli utenti di creare, gestire e manipolare le liste di distribuzione. Ciò include la creazione e il salvataggio dei membri della lista, la lettura delle liste di distribuzione, l’aggiornamento delle proprietà della lista e altre operazioni correlate.
Crea e salva liste di distribuzione nei file PST
Aggiungi una lista di distribuzione con contatti PST esistenti
Il frammento di codice qui sotto dimostra come creare una lista di distribuzione contenente contatti già memorizzati in un file PST.
- Crea un nuovo file PST usando PersonalStorage.create() con formato UNICODE.
- Crea una cartella "Contacts" predefinita e aggiungi due voci di contatto (Sebastian Wright e Wichert Kroos) a questa cartella.
- Aggiungi contatti alla lista di distribuzione:
- Ogni contatto è aggiunto alla lista di distribuzione come un MapiDistributionListMember.
- L’entry_id di ciascun membro è collegato al corrispondente contatto PST usando il strEntryId codificato.
- Crea una lista di distribuzione denominata "Contact list" che includa i contatti aggiunti come membri e aggiungila al 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)
Aggiungi una lista di distribuzione con membri occasionali
I membri occasionali sono adatti quando i contatti non fanno parte della rubrica di Outlook ma devono comunque essere inclusi nella lista di distribuzione. Il seguente esempio di codice dimostra come creare una lista di distribuzione con membri occasionali — contatti che non sono memorizzati nel file PST.
- Crea un nuovo file PST usando PersonalStorage.create() con formato UNICODE.
- Invece di collegare i contatti dal PST, definisci nuove voci di contatto (John R. Patrick e Tilly Bates) direttamente come membri occasionali.
- Aggiungi i membri occasionali a una lista di distribuzione.
- Crea una lista di distribuzione, denominata "Simple list", e aggiungila alla cartella "Contacts" nel 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)
Leggi le liste di distribuzione dai file PST
Per leggere una lista di distribuzione da un PST, utilizza il seguente esempio di codice:
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}")
Aggiorna Liste di Distribuzione nei File PST di Outlook
Per aggiornare una lista di distribuzione in un file PST, ad esempio per aggiungere un nuovo membro, utilizza il seguente esempio di codice:
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)