Gestion des listes de distribution Outlook dans les fichiers PST
Une liste de distribution est un groupe de contacts pouvant être manipulé par un logiciel automatisé, permettant à l’utilisateur d’envoyer des e‑mails à plusieurs destinataires simultanément.
L’API Aspose.Email pour Python permet aux utilisateurs de créer, gérer et manipuler des listes de distribution. Cela inclut la création et l’enregistrement des membres de la liste, la lecture des listes de distribution, la mise à jour des propriétés de la liste et d’autres opérations liées.
Créer et enregistrer des listes de distribution dans des fichiers PST
Ajouter une liste de distribution avec des contacts PST existants
L’extrait de code ci-dessous montre comment créer une liste de distribution contenant des contacts déjà stockés dans un fichier PST.
- Créez un nouveau fichier PST en utilisant PersonalStorage.create() au format UNICODE.
- Créer un dossier "Contacts" prédéfini, et ajouter deux entrées de contact (Sebastian Wright et Wichert Kroos) à ce dossier.
- Ajouter des contacts à la liste de distribution :
- Chaque contact est ajouté à la liste de distribution en tant que MapiDistributionListMember.
- L’entry_id de chaque membre est lié au contact PST correspondant à l’aide de l’strEntryId encodé.
- Créer une liste de distribution nommée "Contact list" qui inclut les contacts ajoutés en tant que membres, et l’ajouter au fichier 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)
Ajouter une liste de distribution avec des membres ponctuels
Les membres ponctuels sont appropriés lorsque les contacts ne font pas partie du carnet d’adresses Outlook mais doivent néanmoins être inclus dans la liste de distribution. L’exemple de code suivant montre comment créer une liste de distribution avec des membres ponctuels — des contacts qui ne sont pas stockés dans le fichier PST.
- Créez un nouveau fichier PST en utilisant PersonalStorage.create() au format UNICODE.
- Au lieu de lier les contacts depuis le PST, définissez de nouvelles entrées de contact (John R. Patrick et Tilly Bates) directement comme membres ponctuels.
- Ajouter les membres ponctuels à une liste de distribution.
- Créer une liste de distribution nommée "Simple list" et l’ajouter au dossier "Contacts" du fichier 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)
Lire les listes de distribution depuis les fichiers PST
Pour lire une liste de distribution depuis un PST, utilisez l’exemple de code suivant :
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}")
Mettre à jour les listes de distribution dans les fichiers PST Outlook
Pour mettre à jour une liste de distribution dans un fichier PST, par exemple pour ajouter un nouveau membre, utilisez l’exemple de code suivant :
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)