Správa distribučních seznamů Outlook v souborech PST

Distribuční seznam je skupina kontaktů, kterou může automatizovaný software manipulovat, což umožňuje uživateli odesílat e‑maily více příjemcům najednou.

Aspose.Email pro Python API umožňuje uživatelům vytvářet, spravovat a manipulovat s distribučními seznamy. To zahrnuje vytváření a ukládání členů ze seznamu, čtení distribučních seznamů, aktualizaci vlastností seznamu a další související operace.

Vytvořit a uložit distribuční seznamy v souborech PST

Přidat distribuční seznam s existujícími PST kontakty

Níže uvedený úryvek kódu ukazuje, jak vytvořit distribuční seznam obsahující kontakty, které jsou již uloženy v souboru PST.

  1. Vytvořte nový soubor PST pomocí PersonalStorage.create() ve formátu UNICODE.
  2. Vytvořte předdefinovanou složku „Contacts“ a přidejte do ní dva záznamy kontaktů (Sebastian Wright a Wichert Kroos).
  3. Přidat kontakty do distribučního seznamu:
    • Každý kontakt je přidán do distribučního seznamu jako MapiDistributionListMember.
    • Každý člen má entry_id propojený s odpovídajícím kontaktem v PST pomocí zakódovaného strEntryId.
  4. Vytvořte distribuční seznam s názvem „Contact list“, který zahrnuje přidané kontakty jako členy, a přidejte jej do souboru 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)

Přidat distribuční seznam s jednorázovými členy

Jednorázoví členové jsou vhodní, když kontakty nejsou součástí adresáře Outlook, ale je potřeba je zahrnout do distribučního seznamu. Následující ukázka kódu demonstruje, jak vytvořit distribuční seznam s jednorázovými členy – kontakty, které nejsou uloženy v souboru PST.

  1. Vytvořte nový soubor PST pomocí PersonalStorage.create() ve formátu UNICODE.
  2. Namísto propojení kontaktů ze souboru PST definujte nové záznamy kontaktů (John R. Patrick a Tilly Bates) přímo jako jednorázové členy.
  3. Přidejte jednorázové členy do distribučního seznamu.
  4. Vytvořte distribuční seznam s názvem „Simple list“ a přidejte jej do složky „Contacts“ v souboru 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)

Číst distribuční seznamy ze souborů PST

Pro načtení distribučního seznamu ze souboru PST použijte následující ukázkový kód:

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

Aktualizovat distribuční seznamy v Outlook PST souborech

Pro aktualizaci distribučního seznamu v souboru PST, například pro přidání nového člena, použijte následující ukázku kódu:

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)