Verwalten von Outlook-Verteilerlisten in PST-Dateien

Eine Verteilerliste ist eine Gruppe von Kontakten, die von automatisierter Software verarbeitet werden kann, sodass der Benutzer E-Mails gleichzeitig an mehrere Empfänger senden kann.

Die Aspose.Email for Python API ermöglicht es Benutzern, Verteilerlisten zu erstellen, zu verwalten und zu manipulieren. Dazu gehören das Erstellen und Speichern von Mitgliedern der Liste, das Lesen von Verteilerlisten, das Aktualisieren von Listeneigenschaften und andere verwandte Vorgänge.

Verteilerlisten in PST‑Dateien erstellen und speichern

Verteilerliste mit vorhandenen PST‑Kontakten hinzufügen

Das unten stehende Code‑Snippet zeigt, wie man eine Verteilerliste erstellt, die Kontakte enthält, die bereits in einer PST‑Datei gespeichert sind.

  1. Erstellen Sie eine neue PST-Datei mit PersonalStorage.create() im UNICODE‑Format.
  2. Erstelle einen vordefinierten Ordner "Contacts" und füge diesem Ordner zwei Kontakteinträge (Sebastian Wright und Wichert Kroos) hinzu.
  3. Kontakte zur Verteilerliste hinzufügen:
    • Jeder Kontakt wird zur Verteilerliste hinzugefügt als ein MapiDistributionListMember.
    • Die entry_id jedes Mitglieds wird über die kodierte strEntryId mit dem entsprechenden PST-Kontakt verknüpft.
  4. Erstelle eine Verteilerliste mit dem Namen "Contact list", die die hinzugefügten Kontakte als Mitglieder enthält, und füge sie der PST-Datei hinzu.
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)

Verteilerliste mit einmaligen Mitgliedern hinzufügen

Einmalige Mitglieder sind geeignet, wenn die Kontakte nicht Teil des Outlook-Adressbuchs sind, aber dennoch in die Verteilerliste aufgenommen werden sollen. Das folgende Codebeispiel zeigt, wie man eine Verteilerliste mit einmaligen Mitgliedern erstellt – Kontakte, die nicht in der PST-Datei gespeichert sind.

  1. Erstellen Sie eine neue PST-Datei mit PersonalStorage.create() im UNICODE‑Format.
  2. Anstatt Kontakte aus der PST zu verknüpfen, definiere neue Kontakteinträge (John R. Patrick und Tilly Bates) direkt als einmalige Mitglieder.
  3. Füge die einmaligen Mitglieder einer Verteilerliste hinzu.
  4. Erstelle eine Verteilerliste mit dem Namen "Simple list" und füge sie dem Ordner "Contacts" in der PST-Datei hinzu.
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)

Verteilerlisten aus PST‑Dateien lesen

Um eine Verteilerliste aus einer PST zu lesen, verwenden Sie das folgende Codebeispiel:

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

Verteilerlisten in Outlook‑PST‑Dateien aktualisieren

Um eine Verteilerliste in einer PST‑Datei zu aktualisieren, z. B. ein neues Mitglied hinzuzufügen, verwenden Sie das folgende Codebeispiel:

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)